Если вы ищете свойство, определенное в объекте, вы можете использовать метод hasOwnProperty объекта. как это:
myObject = new MyObject();
// some code
if ( myObject.hasOwnProperty('prop') ) {
// prop exists
}
но это только для того, чтобы узнать, определено ли такое свойство в самом объекте, но не в его родителях. поэтому, если такое свойство наследуется объектом, вы не можете проверить его существование следующим образом.
другой способ - проверить свойство на неопределенное значение. как это:
if ( myObject.prop !== undefined ) {
// prop exists
}
не забудьте использовать оператор! == вместо! =, Потому что! = Не будет отличаться от нуля до неопределенного, но! == делает поэтому, если у вашего объекта есть свойство, но значение равно нулю,! = вам не поможет. так что этот тест:
if ( myObject.prop ) {
}
может иметь неверные результаты, если «prop» имеет значение false или null. но, сравнивая с undefined с оператором! ==, вы можете быть уверены, что нулевые / ложные значения вас не смущают.