instanceof 运算符

返回一个布尔值,该值指示一个对象是否为特定类或构造函数的一个实例。

object instanceof class

实参

  • object
    必选。 任何对象表达式。

  • class
    必选。 任何对象类或构造函数。

备注

如果 object 是 class 或构造函数的实例,则 instanceof 运算符返回 true。 如果对象 不是指定类或函数的实例,或者对象 为 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

请参见

概念

运算符优先级

运算符摘要