__proto__和prototype的区别和关系?

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!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值