我正在阅读 David Flanagan 的《JavaScript:权威指南》,这可能是世界上最厚的 JavaScript 书。在简要描述数组初始值设定项时,弗拉纳根说“每次数组初始值设定项时都会评估数组初始值设定项中的元素表达式 被评估”。这是什么意思。我的实践结果让我更加困惑:
var a = 50;
var b = 70;
var array = [a+b, 50];
console.log (array [0]); //120
a = 60;
console.log (array [0]); //120
var other = array;
console.log (other [0]); //120
我认为将 a 的值更改为 60 后结果将是 130,因为表达式将被重新计算。但事实并非如此。我知道我完全搞错了。有人能解释一下弗拉纳根在这句话中试图解释什么吗?
最佳答案
他的意思是,当数组文字表达式被(“重新”-)计算时,它的内容也将被计算。
function makeArray() {
return [a];
}
var a = 0;
console.log(makeArray()); // [0]
a = 1;
console.log(makeArray()); // [1]
所以,实际上没什么特别的,只是默认的表达行为。
关于javascript - "The element expressions in an array initializer are evaluated each time the array initializer is evaluated"这句话是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122439/