javascript - 属性键答案 [值] 是否作为全局变量返回?
问题描述
函数 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;
}
解决方案
[value] 是 answers 对象的属性键吗?
是的。该键值对的值为prime
。
[value] 现在是其定义函数之外的变量吗?
没有。最后一行
return isPrime.answers[value] = prime;
相当于:
isPrime.answers[value] = prime;
return prime;
所以它将prime
(一个布尔值)存储在对象内部(在value
包含的键下),并返回它。从函数返回变量不会以任何方式改变变量本身,它不会成为全局变量,只是返回它的值(布尔值)。
value
和都是prime
的局部变量isPrime
。
推荐阅读
- android - 更改 PlaceAutoCompleteFragment 提示时出现 NullPointerException
- php - 更新数据时,RouteCollection.php 第 251 行中的 MethodNotAllowedHttpException laravel
- android - 颤动动画在某些设备上运行非常慢?
- c++ - 如何仅使用 c++ 中的循环打印此代码的垂直直方图?
- java - 计算recyclerview中物品的总价
- react-native - FlatList 标头中有多个元素
- scala - 了解 Spark 流作业的 JVM 指标
- javascript - Promise.then(a, b) 和 Promise.then(a).catch(b) 一样吗?
- php - 如何根据在 Codeigniter 中选择的数字显示复选框
- javascript - 单击按钮后,计数 x 秒,然后使用 jquery 重定向到特定链接