阅读大块头《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(),也就是说不能和 ‘+’ 运算符一起工作。