пятница, февраля 29, 2008

Тестирование типа переменной instanceof. AS2

Лучший способ проверить тип переменной: instanceof.
Однако, необходимо учитывать, что результат тестирования наследника и родителя быдет один и тот же. Поэтому, если необходимо отличить наследника от родителя, нужно тестировать объект на предмет причастности к наследнику.

Например, нам нужно проверить, что переменная является не массивом, а объектом (Array является наследником Object):
Пишем:
var a={a:1,b:2,c:3};
trace(a instanceof Object);
// true.
Всё отлично.
var a=[1,2,3];
trace(a instanceof Object);
// true.
А это уже не приемлемо.

Пробуем проверить на непричастность к Array:
var a={a:1,b:2,c:3};
trace(!(a instanceof Array));
Всё отлично.
var a=[1,2,3];
trace(!(a instanceof Array));
// false.
Вот теперь всё верно.

Комментариев нет: