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
NameTypeDescription
cxJSContext *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.
objJS::Handle&lt;JSObject*&gt;Object to test.
claspJSClass *Class against which to test the object.
argsJS::CallArgs *Optional pointer to arguments. If non-null, report an error if obj is not of type clasp. Added in SpiderMonkey 38
argvjsval *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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:102 次

字数:5283

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文