test是子类SubType的实例属性,在var instance2=new SubType()时给instance2的test赋值["h1","h2","h3","h4"]。 同样你instance1.test.push的时候也是修改了instance1的实例属性。 访问instance2.name时去找实例属性找不到,再去看原型链发现SubType.prototype有属性name,于是返回它。同样instance1.name.push也是修改了原型链SubType.prototype的name属性。
test
是子类SubType
的实例属性,在var instance2=new SubType()
时给instance2
的test
赋值["h1","h2","h3","h4"]
。 同样你instance1.test.push
的时候也是修改了instance1
的实例属性。访问
instance2.name
时去找实例属性找不到,再去看原型链发现SubType.prototype
有属性name
,于是返回它。同样instance1.name.push
也是修改了原型链SubType.prototype
的name
属性。