我实际上对蜘蛛猴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没有y属性。你能说出我做错了吗?即使我正在创造刺痛,我也面临同样的情况。
答案 0 :(得分: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
这五个页面包含破解代码所需的所有信息。