我正在尝试使用 Fuse 来创建移动应用程序,他们使用 JavaScript 来实现逻辑。我以前从未使用过 JavaScript,最近刚刚完成了他们的入门类(class)。大多数内容都很容易理解,但我在某一时刻对他们使用变量的方式遇到了麻烦。如果有人能解释变量在 JavaScript 中的行为方式,那就太好了。
所以我遇到的问题如下:
for (var i = 0; i < hikes.length; i++){
// A new variable gets the value of the array
var hike = hikes[i];
if (hike.id == id){
// The variable gets a new value
hike.name = "foo";
break;
}
}
因此,根据我对编程的理解,数组加息应该保持不变,只有变量加息应该以 foo 作为名称值。但实际上,该数组现在也有名称 foo。
我猜这个变量作为指向数组值地址的指针,但也许有人可以帮助我更好地理解这个概念。
最佳答案
是的,你是对的,对象和数组总是作为引用传递:
a = {}; // empty object
b = a; // references same object
b.foo = 'bar';
a.foo; // also 'bar'
关于JavaScript 数组值到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50987680/