指定された値が指定されたベースオブジェクトから派生したものである場合、0 以外の数値を返します。
HasBase := HasBase(Value, BaseObj)
任意の値、任意の型。
型:オブジェクト
テストするベースオブジェクトの候補です。
この関数は、BaseObj が Value のベースオブジェクトのチェーン内にある場合は 1 (true) を返し、それ以外の場合は 0 (false) を返します。
次のコードは、この機能とほぼ同等です:
MyHasBase(Value, BaseObj) {
b := Value
while b := ObjGetBase(b)
if b = BaseObj
return true
return false
}
例えば、HasBase(Obj, Array.Prototype)は、Objが Array またはその派生クラスのインスタンスのときに真となります。これは、Obj is Arrayによって実行されるものと同じチェックです。ただし、インスタンスは他のインスタンスに基づくことができますが、isにはクラスが必要です。
HasBaseは、オブジェクトとプリミティブな値の両方を受け入れます。例えば、HasBase(1, 0.base)は真を返します。
オブジェクト、Obj.Base、ObjGetBase、HasMethod、HasProp