1

实际上,我对蜘蛛猴 api 和这个邮件列表都是新手。实际上我试图创建一个像 objectA.arrayA 这样的数组,回调代码是这样的。

    char *value[] = {"abc", "xyz", "efg"};
    int count = 0;
    JSObject* val = JS_NewArrayObject(pContext, 0, NULL);

    while(count < 3) {
        jstr = JS_NewStringCopyZ(pContext, value[count]);

        JS_DefineElement(pContext, val, count++, STRING_TO_JSVAL(jstr),
                        NULL, NULL, JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT);
    }

    vJs->DefineProperty(pObject, "arrayA", OBJECT_TO_JSVAL(val));

我得到了 objectA.arrayA 的正确值,但是当我执行 objectA.arrayA.length 时,它说 arrayA 没有 ay 属性。你能告诉我我做错了什么吗?即使我正在制造刺痛,我也面临着同样的情况。

4

1 回答 1

1

您的第一个明显问题是:

JS_NewArrayObject(pContext, 0, NULL);

你有零的地方应该是你的数组的所需长度。

对我来说很明显你不知道如何使用 API。我相信与您的问题相关的文档可以在以下位置找到:

https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_NewArrayObject

https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_DefineProperty

https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_DefineElement

和: https ://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass.addProperty

https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_PropertyStub

这五个页面包含破解密码所需的所有信息。

于 2012-03-31T03:08:36.890 回答