【JavaScript】__proto__和prototype的区别和联系【整理】

var person={name:'ninja'};
person.prototype.sayName=function(){
    return this.name;
}
Chrome运行结果:
提示找不到sayName属性.
js是可以随时添加属性,不过不是针对实例对象本身,而是针对其实例对象所属的类型对象.
eg:
var Person=function(name){
    this.name=name;
};
Person.prototype.sayName=function(){
    return this.name;
};
var a_person=new Person('ninja');
var name=a_person.sayName();
a_person为实例对象,Person为实例对象所属的类型对象.
两个对象的具体属性:
实例对象存在一个__proto__属性来实现对类型对象的prototype的引用.

这篇文章不错推荐下:http://www.cnblogs.com/shineqiujuan/p/3176786.html

原文地址:https://www.cnblogs.com/haoxianrui/p/4533988.html