0
livingCats = {"bob": true, "bo": false};
for(var cat in livingCats)
  print(cat);

这将输出对象中的所有名称,无论它是否为真。我不记得将 cat 定义为对象中的任何内容,那么为什么我们可以使用 cat 打印每个名称?猫可以换任何东西,没关系?

有关使用 var 和 in 打印密钥的语法的更多信息。

从答案和更多地阅读文档中发现 cat 变量没有定义但是是一个可枚举的,因此可以在 for..in 中使用。猫可以用任何东西代替。

4

2 回答 2

0

in 的变量for()可以是任何东西,它只是表示对象中的通用键。

于 2013-07-27T02:15:31.087 回答
0

您没有在 object 中cat定义为任何内容。您将其定义为变量,并语句中这样做。for

这使得 JavaScript依次分配livingCats对象的每个属性名称,并每次运行语句中的代码。它不查看属性的值,它只是将属性名称分配给.catforcat

您的特定for循环等效于以下代码:

print("bob");
print("bo");

尽管请注意,一旦循环结束,cat仍然会在循环中为其分配最后一个值。

于 2013-07-27T02:19:06.363 回答