Fork me on GitHub

js prototype

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;
  }  
}

 

 
posted @ 2016-01-05 16:28  明天后浪  阅读(110)  评论(0编辑  收藏  举报