aoa*_*ony 4 javascript scope mutation
这里有n00b问题:
假设您调用一个函数来更新数字或字符串,如下所示
var x = "well";
var helloify = function(str){
str += "hello"
};
Run Code Online (Sandbox Code Playgroud)
我期望这种行为:
helloify(x);
console.log(x)
\\ "well hello"
Run Code Online (Sandbox Code Playgroud)
但相反我得到
\\ "well"
Run Code Online (Sandbox Code Playgroud)
“+=”不会改变“x”的值吗?这种变化是否只存在于函数范围内,而不存在于全局环境中?
谢谢!
- 使困惑
当您调用时,helloify(x);您传递的是(字符串)的值而不是对 的引用。xx
str += "hello"修改str并保留x。
注意:对象仅通过引用寻址,因此如果x是对对象的引用,那么您将修改由两个变量寻址的单个对象。但简单的字符串不是对象。
| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |