livingCats = {"bob": true, "bo": false};
for(var cat in livingCats)
print(cat);
这将输出对象中的所有名称是否为真。 我不记得将cat定义为对象中的任何内容,为什么我们可以使用cat来打印每个名称? 猫可以兑换任何东西而且没关系吗?
有关使用var和in打印键的语法,请参阅更多信息。
从答案和阅读更多文档,cat变量未定义但是可枚举,因此可用于for..in。猫可以被任何东西取代。
答案 0 :(得分:0)
for()
中的变量可以是任何内容,它只是表示对象中的泛型键。
答案 1 :(得分:0)
您没有将cat
定义为对象中的任何。您将其定义为变量,并在for
语句中执行了。
这使得JavaScript依次将livingCats
对象的每个属性名称分配给cat
,并且每次都在for
语句中运行代码。它不会查看属性的值,只是将属性名称分配给cat
。
您的特定for
循环等效于此代码:
print("bob");
print("bo");
虽然注意一旦循环结束,cat
仍将在循环中为其分配最后一个值。