【发布时间】:2014-05-21 02:57:25
【问题描述】:
我发现 Javascriptcore 提供了 JSClassDefinition 来定义静态值和函数,但找不到如何定义非静态函数。
如何定义一个js对象的成员函数?
以及如何在成员函数中获取'this'指针?
【问题讨论】:
标签: javascriptcore
我发现 Javascriptcore 提供了 JSClassDefinition 来定义静态值和函数,但找不到如何定义非静态函数。
如何定义一个js对象的成员函数?
以及如何在成员函数中获取'this'指针?
【问题讨论】:
标签: javascriptcore
我想我已经得到了答案。我们可以使用 JSObjectMakeFunctionWithCallback:
JSStringRef funcName = JSStringCreateWithUTF8CString("memberFunction");
JSObjectRef funcObj = JSObjectMakeFunctionWithCallback(ctx, funcName, memberFunction);
JSObjectSetProperty(ctx, obj, funcName, funcObj, kJSPropertyAttributeNone, &exception);
JSStringRelease(funcName);
memberFunction 是:
JSValueRef memberFunction (JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
OutputDebugStringA("MEMBER FUNCTION\n");
return JSValueMakeNull(ctx);
}
【讨论】: