gpt4 book ai didi

javascript传递对象作为引用

转载 作者:IT王子 更新时间:2023-10-29 03:12:57 24 4
gpt4 key购买 nike

我有一个对象,它在函数内部的许多不同函数中传递。这些函数可能会也可能不会更改对象的值,但如果它们确实更改了它,那么我想获取对象的最新更改。

以下是我正在尝试做的事情:

var ob = {text: 'this is me', name: 'john'}

function (object) {

changeObject(object);
customObjectChanger(object);
callback = function (object) {
object.text = 'new text';
}

callback(object);

// object value here should be object{text: 'new text', name: 'john'};
}

最佳答案

在 JavaScript 中,对象总是通过复制引用传递。我不确定这是否是完全正确的术语,但将传入对象引用的副本。

这意味着在函数执行完毕后,您可以看到对对象所做的任何更改。

代码:

var obj = {
a: "hello"
};

function modify(o) {
o.a += " world";
}

modify(obj);
console.log(obj.a); //prints "hello world"


话虽如此,因为它只是传入的引用的副本,如果您重新分配函数内部的对象,这将在函数外部可见,因为它只是您更改的引用的副本

代码:

var obj = {
a: "hello"
};

function modify(o) {
o = {
a: "hello world"
};
}

modify(obj);
console.log(obj.a); //prints just "hello"

关于javascript传递对象作为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16880418/

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