所有的对象都可以自由扩展属性 (null 除外)

所有的引用类型(对象,数组,函数)都有一个_proto_属性

所有的函数都有一个prototype属性

所有引用类型对象的_proto_属性指向它的的构造函数的prototype属性值

obj.__proto__===Object.prototype;
遍历对象的属性(以及原型的属性)
<script>
var o={};
o.name="a";
o.say=function(){};
Object.prototype.age=12; //原型增加属性
//自己的属性+原型的属性
for(item in o){
alert(item) //弹出name say age
}
//只读取自己的属性
for(item in o){
if(o.hasOwnProperty(item)){
alert(item) //弹出name say
}
}
</script>
原型链流程

