如何为JSObjectRef定义一个非静态函数并得到这个'在这个成员函数?

时间:2014-05-21 02:57:26

标签: javascriptcore

我发现Javascriptcore提供了JSClassDefinition来定义静态值和函数,但是找不到如何定义非静态函数。

如何为js对象定义成员函数?

以及如何在成员函数中获取'this'指针?

1 个答案:

答案 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);
}