我已将问题放在以下代码的评论中:
var box = {};
box.content = box; // box{ 'content': {} } right?
show('content' in box); // true because content exist inside of the box object
show('content' in box.content); // false because box.content contains an empty object! Right?
答案 0 :(得分:2)
是的,你的断言都是正确的。实际上第二个断言也应该返回true:
console.log('content' in box); // true
console.log('content' in box.content); // true
第二个返回true,因为你在这一行设置了递归:
box.content = box;
这是控制台中的结果:
答案 1 :(得分:0)
这应该完全递归地返回true,因为你在'content'属性中引用了对象。
console.log(blah.content.content.content.content === blah) //shows 'true'