var a = {x:1};
var c = inherit(a);
c.x //1
c.x = 3;c.y = 2; //赋值
a.x //1,
//继承后,如果改变继承后的值,不会改变原值。
如果用赋值方式
var c = a;
当对c进行操作时,会改变a中的原值,(猜想,类似于java中的引用类型,当进行赋值时,会把a的地址赋值给c,当c进行操作时,实际改的是a地址中的值,而继承inherit会重新创建一个地址不同的c存储空间,原有的值也会传给c,对c的操作不会影响到a)
var a = {x:1};
var c = inherit(a);
c.x //1
c.x = 3;c.y = 2; //赋值
a.x //1,
//继承后,如果改变继承后的值,不会改变原值。
如果用赋值方式
var c = a;
当对c进行操作时,会改变a中的原值,(猜想,类似于java中的引用类型,当进行赋值时,会把a的地址赋值给c,当c进行操作时,实际改的是a地址中的值,而继承inherit会重新创建一个地址不同的c存储空间,原有的值也会传给c,对c的操作不会影响到a)
转载于:https://my.oschina.net/nisir/blog/1377163