isPrime函数具有一个名为Answers的属性和一个名为value的属性键。如果isPrime.answers [value]在函数末尾返回[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;
}
答案 0 :(得分:0)
[value]是答案对象的属性键吗?
是的。该键值对的值为prime
。
[值]现在是否是其定义函数之外的变量?
不。最后一行
return isPrime.answers[value] = prime;
等效于:
isPrime.answers[value] = prime;
return prime;
因此它将prime
(一个布尔值)存储在对象内部(在value
所包含的键下),并返回它。从函数返回变量不会以任何方式改变变量本身,它不会成为全局变量,只是会返回其值(布尔值)。
value
和prime
都是isPrime
的局部变量。