instanceof 演算子
更新 : 2007 年 11 月
オブジェクトが特定のクラスまたは作成した関数のインスタンスかどうかを示すブール値を返します。
object instanceof class
引数
object
必ず指定します。任意のオブジェクト式を指定します。class
必ず指定します。任意のオブジェクト クラスまたは作成した関数を指定します。
解説
引数 object が引数 class または作成した関数のインスタンスである場合、instanceof 演算子は真 (true) を返します。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