как использовать отрицание instanceof в javascript с условным оператором без else

Аватар пользователя Maksim Litvinov
Maksim Litvinov
24 февраля 2025

Использование отрицания оператора 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

1 0
Познакомьтесь с основами JavaScript бесплатно