属性 key answers[value] 是否作为全局变量返回?
Is property key answers[value] being returned as a global variable?
函数 isPrime 有一个名为 answers 的 属性 和一个名为 value 的 属性 键。如果 isPrime.answers[value] returns [value] 在函数的末尾,[value] 现在是其定义函数之外的变量,同时是 answers 对象的 属性 键吗?
function isPrime(value) {
if (!isPrime.answers) {
isPrime.answers = {};
}
if (isPrime.answers[value] !== undefined) {
return isPrime.answers[value];
}
var prime = value !== 1; // 1 is not a prime
for (var i = 2; i < value; i++) {
if (value % i === 0) {
prime = false;
break;
}
}
return isPrime.answers[value] = prime;
}
is [value] a property key of the answers object?
是的。该键值对的值为 prime
.
is [value] now a variable outside of its defined function?
没有。最后一行
return isPrime.answers[value] = prime;
相当于:
isPrime.answers[value] = prime;
return prime;
所以它将 prime
(布尔值)存储在对象内部(在 value
包含的键下),并且 returns 它。从函数返回变量不会以任何方式改变变量本身,它不会成为全局变量,只会返回它的值(布尔值)。
value
和prime
都是isPrime
的局部变量。
函数 isPrime 有一个名为 answers 的 属性 和一个名为 value 的 属性 键。如果 isPrime.answers[value] returns [value] 在函数的末尾,[value] 现在是其定义函数之外的变量,同时是 answers 对象的 属性 键吗?
function isPrime(value) {
if (!isPrime.answers) {
isPrime.answers = {};
}
if (isPrime.answers[value] !== undefined) {
return isPrime.answers[value];
}
var prime = value !== 1; // 1 is not a prime
for (var i = 2; i < value; i++) {
if (value % i === 0) {
prime = false;
break;
}
}
return isPrime.answers[value] = prime;
}
is [value] a property key of the answers object?
是的。该键值对的值为 prime
.
is [value] now a variable outside of its defined function?
没有。最后一行
return isPrime.answers[value] = prime;
相当于:
isPrime.answers[value] = prime;
return prime;
所以它将 prime
(布尔值)存储在对象内部(在 value
包含的键下),并且 returns 它。从函数返回变量不会以任何方式改变变量本身,它不会成为全局变量,只会返回它的值(布尔值)。
value
和prime
都是isPrime
的局部变量。