Поделиться через


Оператор instanceof

Обновлен: Ноябрь 2007

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

object instanceof class

Аргументы

  • object
    Обязательный. Любое выражение объекта.

  • class
    Обязательный. Любой класс объекта или созданная функция.

Заметки

Оператор instanceof возвращает значение true, если аргумент object является экземпляром class или созданной функции. Если object не является экземпляром указанного класса или функции или в качестве аргумента object передается значение null, оператор возвращает значение false.

В JScript объект Object имеет особое значение. Объект считается экземпляром Object в том и только в том случае, ели он был создан с помощью конструктора Object.

Пример 1

В следующем примере демонстрируется использование оператора instanceof для проверки типа переменной.

// This program uses System.DateTime, which must be imported.
import System

function isDate(ob) : String {
   if (ob instanceof Date)
      return "It's a JScript Date"
   if (ob instanceof DateTime)
      return "It's a .NET Framework Date"
   return "It's not a date"
}

var d1 : DateTime = DateTime.Now
var d2 : Date = new Date
print(isDate(d1))
print(isDate(d2))

В результате выполнения данного кода выводятся следующие данные:

It's a .NET Date
It's a JScript Date

Пример 2

В следующем примере демонстрируется использование оператора instanceof для проверки экземпляров созданной функции.

function square(x : int) : int {
   return x*x
}

function bracket(s : String) : String{
   return("[" + s + "]");
}

var f = new square
print(f instanceof square)
print(f instanceof bracket)

В результате выполнения данного кода выводятся следующие данные:

true
false

Пример 3

В следующем примере демонстрируется, как оператор instanceof проверяет, являются ли объекты экземплярами объекта Object.

class CDerived extends Object {
   var x : double;
}

var f : CDerived = new CDerived;
var ob : Object = f;
print(ob instanceof Object);

ob = new Object;
print(ob instanceof Object);

В результате выполнения данного кода выводятся следующие данные:

false
true

Требования

Версия 5

См. также

Основные понятия

Приоритет операторов

Сводные сведения об операторах