为了真正理解 Javascript,而不是复制和粘贴 Javascript googler,我正在阅读 Eloquent Javascript 电子书,并且碰巧遇到了以下示例:
var chineseBox = {};
chineseBox.content = chineseBox;
show("content" in chineseBox);
show("content" in chineseBox.content);
令人惊讶的是,它们都输出true. 这本书本身声称,“运算符in可用于测试对象是否具有某种属性。它产生一个布尔值。”
我知道这show("content" in chineseBox);是在寻找content它确实拥有的属性,它的价值是chineseBox. 但是,为什么第二个show()工作?
为了进一步测试,我尝试了:
show("content" in chineseBox.content.content); //true
show("contents" in chineseBox.contents.content); //type error: undefined
show("contents" in chineseBox.content.contents); // invalid "in" operand
问题基本上是,变量 chineseBox{} 没有 content 属性......还是有?