Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Проверка существования свойств и методов
Оператор in
позволяет проверить существование свойства (включая унаследованные в цепочке прототипов) у объекта. Если свойство существует, то возвращается значение true
:
let objA = { a: 10 };
let objB = { b: 55 };
objB.__proto__ = objA;
console.log('a' in objA); // true
console.log('b' in objA); // false
console.log('a' in objB); // true
console.log('b' in objB); // true
console.log('toString' in objB); // true
let x = new Number(5);
console.log('toFixed' in x); // true
Проверить наличие собственного (не унаследованного в цепочке прототипов) свойства позволяет метод hasOwnProperty(<Название свойства>)
:
let objA = { a: 10 };
let objB = { b: 55 };
objB.__proto__ = objA;
console.log('a' in objB); // true
console.log( objB.hasOwnProperty('a') ); // false
console.log( objB.hasOwnProperty('b') ); // true
Если название метода указать в условии без круглых скобок, то это позволит проверить наличие метода:
let x = new Number(5);
if (x.toFixed) console.log('Метод определен');
else console.log('Нет');
Обратите внимание на то, что проверять таким образом наличие свойства нельзя, т. к. значение 0
будет интерпретировано как false
.
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов