1.__proto__是每个对象都有的一个属性,而prototype是函数才有的属性
2.__proto__是当前对象的原型对象(隐式原型),而prototype是当前构造函数的原型对象(显式原型)
3.代码
//在JS中,所有函数都能作为构造函数,构造出一个对象
//创建函数
function GoodFriend(){
this.name = "三三";
}
//现在设置GoodFriend()这个函数的prototype属性,prototype属性指向一个对象
//先定义一个Girl对象,再把Girl赋值给GoodFriend()的prototype
var Girl = {
who : "张三三"
};
//使GoodFriend()的prototype属性指向Gril对象
GoodFriend.prototype = Girl;
//此时用 GoodFriend() 作为构造函数,构造出Object对象
var myFriend = new GoodFriend();
console.log(myFriend.__proto__ === GoodFriend.prototype) //true
所以你的__proto__来自你的构造函数的prototype
即每个对象的__proto__属性指向自身构造函数的prototype!