Share via


instanceof 運算子

傳回的布林值 (Boolean) 將說明物件是否為某個特定類別或已建構函式的執行個體。

object instanceof class

引數

  • object
    必要項。 任何物件運算式。

  • class
    必要項。 任何物件類別或已建構的函式。

備註

如果 object 是 class 或已建構函式的執行個體,則 instanceof 運算子會傳回 true。 如果 object 不是指定之類別或函式的執行個體,或 object 為 null,則傳回 false

JScript Object 是特殊的。 只有在物件是由 Object 建構函式 (Constructor) 所建構時,才將物件視為 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

請參閱

概念

運算子優先順序

運算子摘要