gpt4 book ai didi

javascript - 理解 JavaScript 原型(prototype)继承

转载 作者:行者123 更新时间:2023-11-30 08:28:38 25 4
gpt4 key购买 nike

我正在读这个 article关于angular的继承,起步于JavaScript Prototypal Inheritance。文章说当我们执行 childScope.aString = 'child string' 新属性隐藏/隐藏同名的 parentScope 属性,但是当我们执行 childScope.anArray[1] = 22 属性值在原始对象上更新。 我不明白。
谁能帮忙。
提前谢谢你

最佳答案

a.b = c 显式地为对象 a 的属性 b 赋值。这将覆盖所有隐式继承的属性。具有实际继承的实际 Javascript 示例:

function A() {}
A.prototype.b = 'c';

var a = new A();
console.log(a.b);

a 实际上没有属性 b,它只是从原型(prototype)继承而来。现在:

a.b = 'd';

这现在已经将实际属性 b 直接附加到 a。原型(prototype)仍然有一个属性 b = 'c',但它在 a 上不再可见。 a.b 现在是 'd'

这与 a.anArray[1] = 22 之间的区别在于您在这里修改一个可变对象。您不是在 a 上分配属性,而是从 a 获取属性然后修改它。这不会更改 a,它会更改对象 anArray 的实例。这对所有有权访问 anArray 的对象都是可见的。

关于javascript - 理解 JavaScript 原型(prototype)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41227364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com