как использовать отрицание instanceof в javascript с условным оператором без else
Использование отрицания оператора instanceof
в JavaScript позволяет проверить, что объект не является экземпляром определённого класса или конструктора.
Чтобы применить это в условном выражении без использования блока else
, вы можете использовать оператор if
, который выполнит определённый код, если условие истинно. Если же условие ложно, код внутри if
просто будет пропущен.
Предположим, что у нас есть класс Animal
и несколько экземпляров этого класса и его подклассов:
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name) {
super(name);
}
}
class Cat extends Animal {
constructor(name) {
super(name);
}
}
let myCat = new Cat('Whiskers');
let myDog = new Dog('Fido');
let notAnAnimal = { name: 'Some Object' };
Теперь мы можем использовать отрицание instanceof
для выполнения определённого кода только в том случае, если объект не является экземпляром класса Animal
. Вот как это можно сделать:
function checkInstance(obj) {
// Проверяем, что obj не является экземпляром Animal
if (!(obj instanceof Animal)) {
console.log(`${obj.name} не является животным.`);
}
}
checkInstance(myCat); // Не выполнится, так как myCat - это экземпляр Cat, который является подклассом Animal
checkInstance(myDog); // Не выполнится, так как myDog - это экземпляр Dog, который является подклассом Animal
checkInstance(notAnAnimal); // Выполнится, так как notAnAnimal не является экземпляром Animal
Использование отрицания instanceof
в JavaScript в сочетании с условным оператором — это мощный способ фильтрации объектов на основе их типа без необходимости использования конструкции else