_proto_和prototype的区别

Prototype是一个对象的属性,它是由这个对象创建的子对象的原型
__proto__是一个对象的内部属性,指向它的原型,也可以通过Object.getPrototypeOf()来获取对象的原型,但是用__proto__更快。

有点拗口,意思就是__proto__属性指向的才是自己的原型,而prototype是父对象的属性,子对象是继承父对象的prototype属性指向的对象的属性和方法。那么实际上,整个继承的过程就是,当我访问一个对象的属性时,首先会查找这个对象有没有属性,如果有的话,直接取出,如果没有的话,通过这个对象的__proto__属性指向的对象查找此对象(即第一个对象的父对象)的属性,有的话返回,没有的话,继续往上查找,直到返回属性值或者空(这是JS对象的属性查找的内部实现)。

也就是说, 子对象.__proto__===父对象.prototype  但是只有在chrome和Firefox 中存在  在IE中没有

 

 

posted @ 2014-05-10 14:48  ^cherish~  阅读(479)  评论(0编辑  收藏  举报