【发布时间】:2016-03-30 13:46:01
【问题描述】:
我对 JS 有点陌生,我正在尝试了解 for/in 循环的真正工作原理,这里有一些示例代码:
phoneBook = {};
phoneBook.bill = { name : "bill", lastName "hayder" };
phoneBook.steve = { name : "steve", lastName "garcia" };
for ( obj in phoneBook )
{
console.log(obj);
};
当我运行这段代码时,我得到了 bill 和 steve 作为输出,我的问题是,如果这就是迭代器所持有的,为什么我被允许做 phoneBook[obj] 并使用它?如果我手动输入 phoneBook[bill] 会出错,我只能使用 phoneBook.bill 或 phoneBook["bill"]。
感谢您的帮助。
【问题讨论】:
-
因为
bill作为标识符是未定义的。 JS 语法只允许objectName["property"]或objectName.property。如果bill是字符串的变量,它会起作用。obj就是这种情况—— 它是一个字符串。 -
欲了解更多信息,您可以查看在 js developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/… 中使用对象是如何工作的
标签: javascript iterator for-in-loop