javascript - js中关于继承的问题?
本文介绍了javascript - js中关于继承的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
function AAA() {
this.name = "AAA name";
}
function BBB() {
}
BBB.prototype = new AAA();
var bbb = new BBB();
var ccc = new BBB();
console.log(bbb.name); \\AAA name
console.log(ccc.name); \\AAA name
bbb.name = "111";
console.log(bbb.name); \\111
console.log(ccc.name); \\AAA name
这不是原型链继承吗?为什么修改了bbb.name
后,ccc.name
不一起改变呢?
解决方案
在重新定义一个和原型链上名字一样的变量时,不是覆盖原型链上的变量,而是在自己的class里面新追加一个.
你改成这样
bbb.__proto__.name = "111";
或者
BBB.prototype.name = "111";
最后的两个就都打印出来111了.
这篇关于javascript - js中关于继承的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文