js面向对象中的原型链

责编:menVScode 2017-06-20 11:45 阅读(884)

        原型链:实例对象与原型之间的连接,叫做原型链 。

function Demo(){ }
Demo.prototype.num = 10;
var v01 = new Demo();
console.log(v01.num);//10

        为什么对象v01能找到num?

        其实num并是不挂载在v01,而是在构造函数的原型上面。构造函数的原型也是对象,那v01是另外的对象,那他如何能找到原型下面的对象呢?v01能通过原型链( __proto__隐式连接 )找到原型下的num属性。


 function Demo(){    this.num = 99;
}
Demo.prototype.num = 10;
var v01 = new Demo();
console.log(v01.num); //99

        上述代码输出结果为99,因为 num=10 是挂载在原型下,而 num=99 是在构造函数里。


        原型链的最外层 : Object.prototype

function Demo(){
    //this.num = 99;
}
//Demo.prototype.num = 10;
Object.prototype.num = 299
var v01 = new Demo();
console.log(v01.num); //299

        按上面所示将那2行代码注释,添加了 Object.prototype.num = 299 ,输出了299。结合下面的图片,这三种关系都一目了然了。

QQ截图20170620142122

前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码