instanceof-Operator
Aktualisiert: November 2007
Gibt einen booleschen Wert zurück, der angibt, ob ein Objekt eine Instanz einer bestimmten Klasse oder einer konstruierten Funktion ist.
object instanceof class
Argumente
object
Erforderlich. Beliebiger Objektausdruck.class
Erforderlich. Beliebige Objektklasse oder konstruierte Funktion.
Hinweise
Der instanceof-Operator gibt true zurück, wenn object eine Instanz von class oder einer konstruierten Funktion ist. Er gibt false zurück, wenn object keine Instanz der angegebenen Klasse oder Funktion ist, oder wenn objectnull ist.
Das JScript-Object ist ein Sonderfall. Ein Objekt gilt nur dann als Instanz von Object, wenn das Objekt mit dem Object-Konstruktor konstruiert wurde.
Beispiel 1
Das folgende Beispiel veranschaulicht die Verwendung des instanceof-Operators zum Überprüfen des Typs einer Variablen.
// 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))
Ausgabe dieses Codes:
It's a .NET Date
It's a JScript Date
Beispiel 2
Das folgende Beispiel veranschaulicht die Verwendung des instanceof-Operators zum Überprüfen von Instanzen einer konstruierten Funktion.
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)
Ausgabe dieses Codes:
true
false
Beispiel 3
Das folgende Beispiel veranschaulicht, wie der instanceof-Operator überprüft, ob Objekte Instanzen von Object sind.
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);
Ausgabe dieses Codes:
false
true