Прикладной код

Оператор «Instanceof»

Оператор «Instanceof»

Проверяет принадлежность объекта к определенному классу.

Синтаксис

var isInstance = Объект instanceof ТипОбъекта

Параметры

  • Объект — проверяемый объект;
  • ТипОбъекта — конструктор (тип) для сравнения принадлежности объекта.

Описание

Оператор instanceof используется для проверки принадлежности объекта к указанному типу. Например, при поимке исключения нужно обработать только исключение определенного типа.

Оператор instanceof возвращает значения:

  • true, если объект является экземпляром класса, определяемого параметром class;
  • true, если класс, определяемый параметром class, присутствует в цепочке прототипов данного объекта;
  • false, если объект, определяемый параметром Объект, не является экземпляром класса, определяемого параметром class.

Комментарии

Оператор instanceof учитывает наследование.

В левой части оператора instanceof указывается проверяемый объект, а с правой - функция-конструктор для проверки.

var theDay = newDate(2018, 12, 10);
if (theDay instanceof Date) {
 alert("Объект класса Date")
}

Пример

Проверка унаследованных объектов.

// Пример показывает, что объекты String и Date принадлежат типу Object.
var myString = new String()
var myDate = new Date()

myString instanceof String // true
myString instanceof Object // true
myString instanceof Date // false

myDate instanceof Date // true
myDate instanceof Object // true
myDate instanceof String // false

Проверка унаследованных объектов с типом, который объявлен пользователем.

// В этом примере объект типа Honda также принадлежит Car и Object.
function Car(model) {
 this.model = model
}

function Honda(model) {
 this.model = model
 this.isHonda = true
}
Honda.prototype = new Car()

honda = new Honda("Accord")

honda instanceof Honda // true
honda instanceof Car // **true**
honda instanceof Object // true

honda instanceof Date // false