我想使用 传输变量function(),但我不确定是否可以将变量放入变量中我试着把变量放在这样的变量中 var toStore = myVariablevar myText = "Hi";changeMyText(myText);function changeMyText(variableToUse) { variableToUse = "Hello World"; console.log(myText);}它不会改变变量的内容 myText
1 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
实际上,您传递给函数的参数是pass by value
这意味着即使您更改参数值,它也不会反映到实际值...
这里,来自w3Schools - JavaScript 函数参数
参数按值传递
函数调用中的参数是函数的参数。
JavaScript 参数是按值传递的:函数只知道值,而不是参数的位置。
如果函数改变了参数的值,它不会改变参数的原始值。
对参数的更改在函数外部不可见(反映)。
对象通过引用传递
在 JavaScript 中,对象引用是值。
因此,对象的行为就像它们通过引用传递一样:
如果一个函数改变了一个对象的属性,它就会改变原来的值。
对对象属性的更改在函数外部可见(反映)
这来自mdn - 函数减速| 谢谢@Ivar
原始参数(例如数字)按值传递给函数;该值 > 传递给函数,但如果函数更改了参数的值,则此更改不会在全局或调用函数中反映出来。
如果您将对象(即非原始值,例如 Array 或用户定义的对象)作为 >a 参数传递,并且函数更改了对象的属性,则该更改在函数外部可见
添加回答
举报
0/150
提交
取消