Как упоминалось в разделе JS, Good Parts, похоже, заявляет, что значение свойства не может быть неопределенным. Однако, если вы выполните следующие действия в консоли Chrome для примера:Почему «Javascript the Good Parts» утверждает, что «значение свойства может быть любым значением Javascript, кроме неопределенного»?
var foo = {}
foo.bar = undefined
foo
Затем разверните объект Foo вы можете увидеть, что Foo содержит свойство бара со значением неопределенным. Конечно, со стороны Javascript вы не можете сказать разницу между возвратом foo.bar undefined и foo.unexistingproperty, возвращающим неопределенные. Но в чем смысл консоли, которая все еще цепляется за свойство, которое было установлено неопределенным?
Я думаю, вы могли бы назвать это довольно бесполезной функцией Chrome «:)» – sje397 2010-12-10 10:18:32
@ sje397: Не бесполезно вообще. Существует разница между существующим и неопределенным имуществом и отсутствием свойства. См. Мой ответ. – 2010-12-10 10:27:52
Так, как и многие ответы, я знаю, что вы можете использовать delete, чтобы избавиться от этого свойства и так далее. Но основная идея с моим вопросом заключалась в том, почему книга утверждает, что значение не может быть неопределенным. Очевидно, это кажется неправильным заявлением Крокфорда. – Sam 2010-12-10 10:37:25