js原型对象,每个new出来的新对象都有独立的原型对象__proto__
Posted 牛顿的小脑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js原型对象,每个new出来的新对象都有独立的原型对象__proto__相关的知识,希望对你有一定的参考价值。
刚才看一篇博文的时候, 动手测试了一下 javascript的原型链, 原型对象,发现每个构造器(赋给了某个 prototype ) new 出来的对象都有各自独立的原型对象 __proto__.
prototype 与 __proto__指向的都是同一个对象,一个是“类”上面的,一个是“对像”上面的。 prototype 从字面上“type”就说明了,这个代表一个“类”, 是一个类别、集合,而不是具体的。
类似于 C++语言中类与对象的关系。 而__proto__就是根据具体 的类“prototype” , 实例化处理的具体的某个对象, 通过prototype new不同的对象的__proto__是彼此独立的。。
好像错了!!看下图
错了,错了,原来下面这种测试代码理解错了。 我们给 s.name 赋值的时候,并没有去改到s.__proto__这个对象的name属性。而是 给s对象新增了 name 属性。其输出 s.name的时候,
并没有去 s.__proto__上面找 name 属性,而是直接在 s 对象本身上面就发现了 name 属性, 所以并不会向上在s.__proto__原型链上去找name 属性。!!刚才理解错了,还好反应过来了。
测试代码 如下:
function Fun(){ //构造器 }; Fun.prototype = { name : \'ysr\' }; var s = new Fun(); s.name = \'pxk\'; console.log(s.name); //pxk var t = new Fun(); console.log(t.name); //ysr
以上是关于js原型对象,每个new出来的新对象都有独立的原型对象__proto__的主要内容,如果未能解决你的问题,请参考以下文章