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;
  }  
}
 
原文地址:https://www.cnblogs.com/zerohu/p/5102807.html