我发现Javascriptcore提供了JSClassDefinition来定义静态值和函数,但是找不到如何定义非静态函数。
如何为js对象定义成员函数?
以及如何在成员函数中获取'this'指针?
答案 0 :(得分:0)
我想我已经得到了答案。我们可以使用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);
}