为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ibeautiful 2021-06-10 09:24:20
我想使用 传输变量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 参数传递,并且函数更改了对象的属性,则该更改在函数外部可见


查看完整回答
反对 回复 2021-06-11
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信