我想使用function()
传输变量,但不确定是否可以将变量放入变量
我试图将变量放在这样的变量var toStore = myVariable
var myText = "Hi";
changeMyText(myText);
function changeMyText(variableToUse) {
variableToUse = "Hello World";
console.log(myText);
}
它不会更改变量myText
的内容
答案 0 :(得分:2)
实际上,您传递给函数的参数是pass by value
,这意味着即使更改参数值也不会反映为实际值...
在这里,来自w3Schools - JavaScript Function Parameters
参数通过值传递
在函数调用中,参数是函数的参数。
JavaScript参数按值传递:该函数仅到达 知道值,而不是参数的位置。
如果函数更改了参数的值,则不会更改 参数的原始值。
对参数的更改在函数外部不可见(反映)。
对象通过引用传递
在JavaScript中,对象引用是值。
因此,对象的行为就像通过 参考:
如果函数更改了对象属性,它将更改原始属性 值。
对象属性的更改在(外部)可见(反射) 功能
来自mdn - function deceleration的内容|谢谢@Ivar
原始参数(例如数字)通过值传递给函数;值>传递给函数,但是如果函数更改了参数的值,则此更改不会反映在全局或调用函数中。
。如果将对象(即非原始值,例如Array或用户定义的对象)作为参数传递,并且函数更改了对象的属性,则该更改在函数外部可见