instanceof

var isInstance = object instanceof ObjectType

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

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

1 var theDay = new Date(2009, 11, 17);
2 if (theDay instanceof Date) {
3   alert("Объект класса Date")
4   // ...
5 }

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

Следующий пример демонстрирует, что объекты String и Date принадлежат типуObject.

Пример: проверка унаследованных объектов
01 var myString = new String()
02 var myDate = new Date()
03
04 myString instanceof String  // true
05 myString instanceof Object // true
06 myString instanceof Date   // false
07
08 myDate instanceof Date     // true
09 myDate instanceof Object   // true
10 myDate instanceof String   // false

То же верно и для типов, объявленных пользователем.

Например, в следующем примере объект типа Honda также принадлежит Car иObject.

01 function Car(model) {
02   this.model = model
03 }
04 function Honda(model) {
05   this.model = model
06   this.isHonda = true
07 }
08 Honda.prototype = new Car()
09
10 honda = new Honda("Accord")
11
12 honda instanceof Honda // true
13 honda instanceof Car // **true**
14 honda instanceof Object // true
15
16 honda instanceof Date // false
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: