继承问题 :求指教

functionSuperType(){
this.name='s;'
this.colors=["red","blue","green"];
}
functionSubType(){
}
//inheritfromSuperType
SubType.prototype=newSuperType();
varinstance1=newSubType();
varinstance2=newSubType();
instance1.name='ssss';
instance1.colors=["red","blue"];
alert(instance1.colors);//"red,blue,green,black"
alert(instance1.name);//"ssss"
alert(instance2.colors);//"red,blue,green,black"
alert(instance2.name);//"s"
instance2.name为什么没有改变
functionSuperType(){
this.name='sdsd';
this.colors=["red","blue","green"];
}
functionSubType(){
//inheritfromSuperType
SuperType.call(this);
}
varinstance1=newSubType();
instance1.colors.name='aaaaaaa';
instance1.colors.push("black");
alert(instance1.colors);//"red,blue,green,black"
alert(instance1.name);//"a"
varinstance2=newSubType();
instance2.colors.name='bbbbbbb';
alert(instance2.colors);//"red,blue,green"
alert(instance2.name);//"a"
instance2.name和instance1.name都没有改变
慕姐4208626
浏览 280回答 2
2回答

小唯快跑啊

读(console.log(a.key))和写(a.key=1)的时候是不一样的,读的时候会一直查下去,写的时候发现本身没有就直接创建赋值了。newSubType()时this指向当前新创建的instance,所以产出为{name,colors}。那你改对colors添加name是不会影响到name属性的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript