prototype 属性允许您向对象添加属性和方法 prototye 是全局属性
语法:object . prototype .name = value;
原型继承的定义
创建一个对象point,拥有三个属性,x,y,print为了能创建一个新的二维点,我们需要创建一个新的二维点,让_proto_属性指向 point
var Point={ x:0; y:0, print:function(){ console.log(this.x,this.y); } }; var p={x:10,y:20,_proto_:Point} p.print();//10 20
以下代码展示了js 引擎如何查找属性
function getProperty(obj,prop){ if(obj.hasOwnProperty(prop)){ return obj[prop]; }else if(obj._proto_!==null){ return getProperty(obj._proto_,prop) }else{ return undefined; } }
了解 new 工作原理
function New (f){ var n={'_proto_':f.prototype}; return function(){ f.apply(n,arguments); return n; } }