В текстовом приключении я делаю, мои объектные литералы для номеров выглядеть следующим образом:тест, если ключ-имя существует в JavaScript литерал объекта
room : {
// some info,
exits : {
north : -1,
east : "house",
south : "forest",
west : -1
}
}
и в моей функции, чтобы двигаться вокруг него говорит:
if (room["exits"][direction] !== -1) {// go that way}
else {print "you can't go that way!"}
Теперь я хочу сэкономить место, просто проверив, выходит ли ключ для соответствующего направления в объекте. так литералы будут идти:
room : {
// some info,
exits : {
east : "house",
south : "forest"
}
}
... что должно мое if
заявление выглядит? каков «правильный» способ выяснить, вызывается ли данное имя ключа в объекте?
Все это похоже на хорошие ответы. Вот связанный с этим вопрос. Что возвращает не-ключевое значение? Т.е.: в приведенном выше примере «var foo = room.exits [bar]' ... is foo null? не определено? –
'room.exits [bar]' будет возвращать 'undefined', если' bar' не существует. '' bar 'in room.exits' вернет 'false'. –
ОК. * Задача вопроса *: можете ли вы указать мне ссылку, которая объясняет null, undefined и falsey (как они применимы в этом контексте), * что у noob был бы шанс понять *? –