В моей попытке действительно понять Javascript, вместо того, чтобы скопировать и вставить Javascript Googler, я иду через красноречивый Javascript E-книги и я случайно пересечь следующий пример:Понимание «в» ключевое слово в 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 {} не обладает свойством контента ... или не так ли?
'chineseBox' имеет свойство' content', и это ссылка на 'chineseBox'. Таким образом, любая глубина '.content' создаст' true'. –
Вы получаете ошибки в своих вторых двух примерах, потому что они используют содержимое вместо содержимого – pllee