JS::CloneFunctionObject 编辑
This article covers features introduced in SpiderMonkey 38
Create a new Function
object from an existing JSFunction
.
Syntax
JSObject *
JS::CloneFunctionObject(JSContext *cx, JS::HandleObject funobj);
JSObject *
JS::CloneFunctionObject(JSContext *cx, JS::HandleObject funobj,
JS::AutoObjectVector &scopeChain);
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 . |
funobj | JS::HandleObject | The Function to clone. |
scopeChain | JS::AutoObjectVector | The new function's scope chain. |
Description
JS::CloneFunctionObject
creates a new function object from funobj
. The new object has the same code and argument list as funobj
. If scopeChain
is supplied, it uses scopeChain
as its enclosing scope. If scopeChain
is omitted, it creates a new function object in cx
's global. This can be helpful if funobj
is an extant function that you wish to use as if it were enclosed by a newly-created global object.
The new object's prototype is Function.prototype
; JS_NewObject
: Choosing a Default Prototype explains exactly how this is computed. JS::CloneFunctionObject
takes care to choose a prototype that shares a global object with the given parent
whenever possible.
funobj
must be a pointer to a JavaScript function object (see JS_ObjectIsFunction
).
On success, JS::CloneFunctionObject
returns a pointer to the newly created object. If the class of funobj
is not Function, then
returns JS::CloneFunctionObject
funobj
itself. On failure, it returns NULL
.
See Also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论