cuốn sách gpt4 ai đã làm

Hành vi cập nhật đối tượng JavaScript (lạ?)

In lại Tác giả: Walker 123 更新时间:2023-11-28 11:11:31 29 4
mua khóa gpt4 Nike

我正在学习 JavaScript。尝试理解代码,

function foo (){
var a = b = {name: 'Hai'};
document.write(a.name +'
');
document.write(b.name +'
');

a.name = 'Hello';

document.write(a.name +'
');
document.write(b.name +'
');
}

输出如下,



你好
你好

虽然分配确实是从右到左,但更新会影响两个方向。是这样的吗?有人可以解释一下吗?

câu trả lời hay nhất

这是因为 Mộtb 都引用同一个对象 {name: 'Hai'}。当您更改其中一个变量时,更改将反射(reflect)在两个变量中。

var a = b = {name: 'Hai'};

上述陈述本质上与此类似(除了 @NinaScholz 在她的回答中指出的内容):

var b = {name: 'Hai'};
a = b;

这样,Mộtb 都指向内存中的同一个对象,因此一个对象的更新会自动反射(reflect)到另一个对象。

在文档 đây 中了解有关对象如何工作的更多信息。要了解有关对象和引用的更多信息,请参阅 this link .

关于JavaScript 对象更新行为(奇怪?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49791595/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress