相关疑难解决方法(0)

JavaScript是一种传递引用还是按值传递的语言?

原始类型(Number,String等)按值传递,但是对象是未知的,因为它们可以是值传递(如果我们认为持有对象的变量实际上是对象的引用)并且通过引用传递(当我们认为对象的变量保存对象本身时).

虽然最后并不重要,但我想知道提交传递约定的参数的正确方法是什么.是否有JavaScript规范的摘录,它定义了与此相关的语义?

javascript pass-by-reference pass-by-value

1311
推荐指数
19
解决办法
34万
查看次数

在Javascript中通过引用传递变量

如何在JS中通过引用传递变量?我有3个变量,我想要执行几个操作,所以我想将它们放在for循环中并对每个变量执行操作.

伪代码:

myArray = new Array(var1, var2, var3);
for (var x = 0; x < myArray.length; x++){
    //do stuff to the array
    makePretty(myArray[x]);
}
//now do stuff to the updated vars
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

javascript variables pass-by-reference

269
推荐指数
6
解决办法
35万
查看次数

为对象分配其他内容时,为什么不通过引用传递此对象?

我知道在JS中,对象是通过引用传递的,例如:

function test(obj) {
    obj.name = 'new name';
}

var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // new name
Run Code Online (Sandbox Code Playgroud)

但为什么下面没有工作:

function test(obj) {
    obj = {};
}

var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // foo
Run Code Online (Sandbox Code Playgroud)

我已经将对象设置为{}(空)但它仍然说foo.

任何人都可以解释这背后的逻辑吗?

javascript pass-by-reference

52
推荐指数
4
解决办法
2万
查看次数