如何在javascript中通过引用传递
如何在JavaScript函数中通过引用传递 例如:如何在javascript中通过引用传递,javascript,Javascript,如何在JavaScript函数中通过引用传递 例如: function passByReference(a){ a = "banana"; } var x = "apple"; passByReference(x); 在这里,x应该输出香蕉 我是JavaScript新手;任何帮助都将不胜感激。提前感谢。用对象包装变量。对象的属性通过引用传递 function passByReference(a) { a.fruit = 'banana'; } var wrapper = {f
function passByReference(a){
a = "banana";
}
var x = "apple";
passByReference(x);
在这里,x应该输出香蕉
我是JavaScript新手;任何帮助都将不胜感激。提前感谢。用对象包装变量。对象的属性通过引用传递
function passByReference(a) {
a.fruit = 'banana';
}
var wrapper = {fruit: 'apple'};
passByReference(wrapper);
您不能通过引用传递。如果要在被调用函数中修改调用方的状态,有两种方法: 有时,最好将状态包装到对象中:
var x = { valueToChange: 'initialValue' };
passByReference(x);
这是因为对于对象,会传递指向对象所在地址的指针。该指针按值传递,但仍指向同一对象
在其他一些情况下,回调会起到以下作用:
var x = "apple";
passByReference(function (newValue) { x = newValue; });
function passByReference(callback) {
callback("banana");
}
这是因为,如果您如上所述定义函数,它将与它引用的所有变量一起构建一个闭包。当调用函数时,它确实会修改
x
的值,但不完全如此。对象也按值传递。但是,属性本身就是引用。例如:这将不起作用a={fruit:'banana'}
在functionyeah@zhonk you are right属性是引用本身,对象也是按值传递的。