gpt4 book ai didi

javascript - 数组作为文字对象中的属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:56:19 26 4
gpt4 key购买 nike

我不太容易解释这个问题,但是看看示例代码就可以了。

var test = { 
my_array: [],
my_var: ''
}


var a = Object.create(test);
var b = Object.create(test);


a.my_array.push('aaa');
b.my_array.push('bbb');

a.my_var = 'this is obj A';
b.my_var = 'this is obj B';


document.write(a.my_array[0]); //output: aaa
document.write('<br>');
document.write(b.my_array[0]); //output: aaa
document.write('<br>');
document.write(a.my_var); //output: this is obj A
document.write('<br>');
document.write(b.my_var); //output: this is obj B

对象 b 与对象 a 具有相同的数组值怎么可能?

最佳答案

您已经创建了两个对象,它们共享一个原型(prototype)对象。在对象属性查找期间找到对象原型(prototype)的属性;它们不会在创建时复制到对象实例。

当你给一个对象属性赋值时

a.my_var = 'this is obj A';

然后该属性成为对象的本地“自己的”属性,即使它以前是原型(prototype)属性。您不能通过这样的赋值来更改原型(prototype)属性值。

关于javascript - 数组作为文字对象中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40914327/

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