属性 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 它。从函数返回变量不会以任何方式改变变量本身,它不会成为全局变量,只会返回它的值(布尔值)。

valueprime都是isPrime的局部变量。