2-5问答: QQZhangSan.show() 以及 QQZhangSan.__proto__.show()
来源:1-1 课程导学

Bokk
2021-08-02
问题
QQZhangSan.show()
以及 QQZhangSan.__proto__.show()
是否一样?
function QQUsers(QQNo_, QQAge_, QQMark_) {
this.QQNo = QQNo_; //QQ号
this.QQAge = QQAge_; //Q龄
this.QQMark = QQMark_
}
QQUsers.prototype.commonfriends = [
'骑驴看海',
'大漠上的英雄',
'坚实的果子',
'小草',
];
QQUsers.prototype.show = function () {
console.log(`QQ号:${this.QQNo},QQ龄:${this.QQAge},QQ标注:${this.QQMark}`);
console.log(`共同的好友是:${this.commonfriends}`);
console.log();
};
回答
不一样.
具体来说QQ号, QQ龄和QQ标注是不一样的, commonfriends是一样的. 对于QQZhangSan.show()
来说, this指向的是QQZhangSan, 可以获取到QQZhangSan属性(QQNo, QQAge, QQMark)的值; 对于QQZhangSan.__proto__.show()
来说, this指向的是QQZhangSan的原型, 在原型中只有commonfriends, 没有QQ号, QQ龄和QQ标注, 所以QQZhangSan.__proto__.show()
只能获得commonfriends的值, 其它都为undefined
写回答
3回答
-
慕村1546111
2021-10-19
看来我想当然了, 想当然的认为一样, 认为调用的不都是一个函数吗? 却没考虑this指向的问题, 果然写前端很少用对象留下的问题
00 -
keviny79
2021-08-02
回答是正确的
00 -
keviny79
2021-08-02
楼上解释正确
00
相似问题