我有一个对象,它在函数内部的许多不同函数中传递。这些函数可能会也可能不会更改对象的值,但如果它们确实更改了它,那么我想获取对象的最新更改。
以下是我正在尝试做的事情:
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'};
}
原文由 Basit 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 JavaScript 中,对象总是通过复制引用传递。我不确定这是否是完全正确的术语,但将传入对象引用的副本。
这意味着在函数执行完毕后,您可以看到对该对象所做的任何更改。
代码:
话虽如此,因为它只是传入的引用的 _副本_,如果您在函数内部 重新分配 对象,这将 不会 在函数外部可见,因为它只是您更改的引用的 _副本_。
代码: