我可以更改函数内部传递的值吗?

时间:2019-05-26 15:06:27

标签: javascript

我想使用function()传输变量,但不确定是否可以将变量放入变量

我试图将变量放在这样的变量var toStore = myVariable

var myText = "Hi";

changeMyText(myText);


function changeMyText(variableToUse) {
    variableToUse = "Hello World";
    console.log(myText);
}

它不会更改变量myText的内容

1 个答案:

答案 0 :(得分:2)

实际上,您传递给函数的参数是pass by value,这意味着即使更改参数值也不会反映为实际值...

在这里,来自w3Schools - JavaScript Function Parameters

  

参数通过值传递

     

在函数调用中,参数是函数的参数。

     

JavaScript参数按值传递:该函数仅到达   知道值,而不是参数的位置。

     

如果函数更改了参数的值,则不会更改   参数的原始值。

     

对参数的更改在函数外部不可见(反映)。

     
     

对象通过引用传递

     

在JavaScript中,对象引用是值。

     

因此,对象的行为就像通过   参考:

     

如果函数更改了对象属性,它将更改原始属性   值。

     

对象属性的更改在(外部)可见(反射)   功能


来自mdn - function deceleration的内容|谢谢@Ivar

  

原始参数(例如数字)通过值传递给函数;值>传递给函数,但是如果函数更改了参数的值,则此更改不会反映在全局或调用函数中。

     

如果将对象(即非原始值,例如Array或用户定义的对象)作为参数传递,并且函数更改了对象的属性,则该更改在函数外部可见