【问题标题】:How to define a non-static function for JSObjectRef and get 'this' in this member function?如何为 JSObjectRef 定义一个非静态函数并在此成员函数中获取“this”?
【发布时间】:2014-05-21 02:57:25
【问题描述】:

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

如何定义一个js对象的成员函数?

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

【问题讨论】:

    标签: javascriptcore


    【解决方案1】:

    我想我已经得到了答案。我们可以使用 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 2013-05-07
      • 2020-12-31
      相关资源
      最近更新 更多