gpt4 book ai didi

javascript - 对象属性的引用行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:50 24 4
gpt4 key购买 nike

var myObject = new Object();
var myObjectCopy = myObject;

myObject.Name = 'alav';

// logs Name alav on both variable
console.log(myObject, myObjectCopy);

myObject = null;

// logs myObject as null and myObjectCopy still has name 'alav' -> bcoz of reference copy
console.log(myObject, myObjectCopy);

下面没有复制相同的行为。

var objA = {property: 'value'};
var pointer1 = objA;

// update the objA.property, and all references (pointer1 & pointer2) are updated
objA.property = pointer1.property;
objA.property= null;
// logs 'null null' because objA, pointer1 all reference the same object
console.log(objA.property, pointer1.property);

为什么上述引用复制行为不适用于对象的内部属性(此处为属性)?

objA.property = pointer1.property; -> 不是引用 COPY 吗?

最佳答案

在第一种情况下,您将引用设置为 null,因此实际对象没有变化

myObject = null;// setting reference to null object , but no change in actual object 

在第二种情况下,您正在对对象进行更改(更改对象的状态)通过将属性设置为 null

objA.property = null; 

因此在每个引用中,属性的值都将为空

enter image description here

关于javascript - 对象属性的引用行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17761446/

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