问题在大犀牛那本书里的第125页,在讲解给对象属性赋值的时候有一句话说,“假设给对象o的属性x赋值,如果o中不存在属性x,那么赋值操作给o添加一个新属性x。如果之前o继承自属性x,那么这个继承的属性就被新创建的同名属性覆盖了”,这话我不光没能理解,实验也没能实现出来。。。
我写的测试代码如下:
AAA = {p:{x:1}};
BBB = inherit(AAA.p);
inherit()是继承的函数,书前面有提到,是正确无误的。上面的BBB继承自AAA的属性p,而且BBB中不存在属性p。
alert(BBB.x); //这里是1,正确
alert(BBB.p);//这里是undefined,正确
BBB.p = "a"; //现在给BBB的p属性赋值"a",BBB不包含p属性,所以给BBB添加了新属性p,并且赋值为"a";
alert(BBB.p); //a,正确
现在该怎么理解书上最后这句“那么这个继承的属性就被新创建的同名属性覆盖了”?实在是不能理解啊
关于javascript中对象继承的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-