有没有办法强制在javascript中通过引用传递?我已经读过对象是作为“对象引用副本”或按共享调用传递的,但是我希望跨功能的更改能够在发送方和接收方之间反映出来。当前的设计使我无法将其声明为全局变量。有关如何处理此问题的任何想法?
例如,考虑下面的代码->
现在,当我执行function1时,我得到->
如何确保function1的值已更改/更新?
答案 0 :(得分:0)
我找到了这个https://codeburst.io/javascript-pass-by-value-and-pass-by-reference-in-javascript-fcf10305aa9c
但是,当变量引用包含数组的对象时, 值是对对象的引用
答案 1 :(得分:0)
您应该更新现有对象,而不是在function2
中创建新对象。
var function1 = function () {
var myVar = {1: 'one', 2: 'two'};
console.log('In one before call->');
console.log(myVar);
function2(myVar);
console.log('In one after call->');
console.log(myVar);
};
var function2 = function (myVar) {
console.log('In two before manipulation->');
console.log(myVar);
// Update the values instead of creating new object
myVar = Object.assign(myVar, {1: 'three', 2: 'nine'});
console.log('In two after manipulation->');
console.log(myVar);
};
function1();