自有属性:直接保存在对象本地的属性。
共有属性:保存在原型对象中,被所有子对象共享的属性。
原型对象:专门集中存储共有的相同属性值和功能都定义在原型对象中,每创建一个构造函数,就会自动带一个原型对象。构造函数.prototype指向原型对象。原型对象.constructor指回构造函数。
如何向原型对象中添加共有成员:
构造函数.prototype.属性=值;
构造函数.prototype.方法=function(){…}
鉴别自有还是共有:
自有:
var bool=obj.hasOwnProperty("属性名");
判断属性名是否是obj的自有属性
共有:不是自有,且obj.属性名 in obj
其中:in:判断obj自己或obj的父元素中是否包含属性名,只要自己或父元素中包含,就返回true