如何引用在javascript for语句中定义的对象
How can I refer to an object that is defined in a javascript for statement?
在Javascript中,"foreach"循环的等价物是:
for(a in b){
// b[a] is now one of the elements of the array b
}
但是,当在for语句中定义"b"时,有没有办法做到这一点?例如
for(a in {'a' : 'alpha', 'b' : 'bravo', 'c' : 'charlie'}){
// can I access the alpha, bravo and charlie values here?
}
我在写这篇文章时才意识到我可以使用:
for(var a in b = {'a' : 'alpha', 'b' : 'bravo', 'c' : 'charlie'}){
// b[a] will now give me the alpha, bravo, charlie values
}
但如果我试图用声明"b"
for(var a in var b = {...})
我遇到语法错误。
这意味着我可以这样做,但只能隐含地将b声明为全局。有没有一种方法可以在不创建全局的情况下访问这些价值观?
我意识到还有其他可能更好的方法可以做到这一点(例如,在循环之外定义数组)。出于好奇,我问这是否可行。
for-in
语句的规范清楚地表明,不,如果不在其他变量中引用对象,就无法以您希望的方式访问对象。
按照步骤到,您可以看到,关于for
循环语句部分中的对象,唯一已知的是下一个可枚举属性的名称,如步骤6a中所定义:
设p为[[Enumerable]]属性为true的obj的下一个属性的名称。如果没有这样的属性,则返回(normal,V,empty)。
要访问关于对象的任何其他内容,您需要自己对它的引用。
您可以用IIFE包装它以防止创建全局变量。
(function () {
var b = {'a' : 'alpha', 'b' : 'bravo', 'c' : 'charlie'};
for(var a in b){
console.log(b[a]);
}
})();
相关文章:
- for循环中的javascript if语句找不到==
- 如何知道javascript for语句中的所有结果是否都是错误的
- for 循环和 if 语句,获取变量并存储它
- 使用javascript中的for循环和if语句
- 在 for 循环中使用 if 语句
- 识别两个文本中的单词(if 语句在 for 循环中)
- for 循环中的 if 语句
- JavaScript: 变量赋值 in for 语句 |在前面或里面
- for 循环中的 if 语句都执行,而不仅仅是一个
- 如何使用for循环语句通过Ajax发送大数据数组
- 为什么这个 JavaScript switch 语句(在 for 循环内)保留了上一次迭代的值
- for循环内部If语句的JavaScript正确语法
- 如何在不使用for语句的情况下生成forloop
- 使用cookie(javascript)时,for循环中的If/Elseif语句出现问题
- for语句循环小写输出
- 在 for 之后的 if 语句中使用对象项
- 通过在 IF 语句和 FOR 循环两边加上括号,函数变得有问题
- 如何使用 PHP for loop 语句打开 Modal Javascript
- 将 for 循环参数传递到每个语句中
- 在 JavaScript for 循环中使用复合条件语句