repl.it:https://repl.it/BuXR/3
var str = "abc";
var str2 = str.split(" ").join("").split("");
var tmp = str2;
console.log(str2);
// => ['a','b','c']
console.log(tmp.reverse());
// => ['c','b','a']
console.log(str2);
// => ['c','b','a']
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么str2正在改变,即使它没有被逆转?
这对我来说非常令人沮丧,但我猜到为什么会发生这种情况.tmp只是指向原始str2的指针,当我在tmp上调用reverse()时,它实际上反转了str2.
即使这确实是正在发生的事情,我仍然觉得这是一种非常违反直觉的语言工作方式.