JS_InstanceOf 编辑
Determine if an object is an instance of a specified JSClass
.
Syntax
bool
JS_InstanceOf(JSContext *cx, JS::Handle<JSObject*> obj, const JSClass *clasp,
JS::CallArgs *args); // Added in SpiderMonkey 38
bool
JS_InstanceOf(JSContext *cx, JS::Handle<JSObject*> obj, const JSClass *clasp,
jsval *argv); // Obsolete since JSAPI 32
Name | Type | Description |
---|---|---|
cx | JSContext * | Pointer to a JS context from which to derive runtime information. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
obj | JS::Handle<JSObject*> | Object to test. |
clasp | JSClass * | Class against which to test the object. |
args | JS::CallArgs * | Optional pointer to arguments. If non-null, report an error if obj is not of type clasp . Added in SpiderMonkey 38 |
argv | jsval * | Optional argument vector. If non-null, report an error if obj is not of type clasp . argv must be the argv argument passed from the engine to a JSNative callback, JS_ARGV(cx, rv) in a JSFastNative callback, or NULL . Obsolete since JSAPI 32 |
Description
JS_InstanceOf
can be used to check whether an object obj is of a particular JSClass
. To use it this way, pass NULL
for argv
. JS_InstanceOf
returns true
if obj
is of the given class and false
otherwise. That is, it returns JS_GetClass(obj) == clasp
.
JS_InstanceOf
can also be used in native functions to check the class of an argument when a particular class is required. To use it this way, pass the arguments provided by the engine for args
with JS::CallArgsFromVp(argc, vp)
. When args
is non-null, JS_InstanceOf
behaves as follows. If obj
is of the given class, it returns true
. Otherwise, it returns false
; it also reports a TypeError
containing the function's name.
Note that JS_InstanceOf
is not the equivalent of the JavaScript instanceof
keyword, which examines constructor
properties along the prototype chain. JS_HasInstance
is similar to instanceof
.
See Also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论