阅读大块头《javascript 权威指南》笔记 6-对象

  • 所有通过对象字面量创建的对象都具有同一个原型对象,可以通过 Object.prototype 获得对象的引用。
  • 对象具有 ‘自有属性’,也有一些属性从原型对象继承而来,例如查询对象 o 的属性 x,如果 o 中没有 x,那么会继续在 o 的原型中查询 x,如果这个原型也有原型,则一样处理,直到查到 null 为止。
  • 如果属性不存在,不会报错,会返回 undefined。
  • delete 运算符只是断开属性和宿主对象的联系,而不能删除继承属性(非要删除的话,得遍历删除)。
    1
    2
    3
    var a = {x:1};
    var b = a.x;
    delete a.x; // a = {} b = {x:1}

-

Object.create()

  • 创建一个新对象,第一个参数是这个对象的原型。
  • 第一个参数传入 null,则创建一个没有原型的对象,这种方式创建的对象不会继承任何东西,甚至不包括基础方法,例如 toString(),也就是说不能和 ‘+’ 运算符一起工作。