javascript - 蜘蛛猴: Why JS array is not inheriting default properties like length,拼接等

标签 javascript c++ spidermonkey javascript-engine

我实际上对 spider monkey 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 属性。你能告诉我我做错了什么吗?即使我正在制造刺痛,我也面临着同样的问题。

最佳答案

您的第一个明显问题是:

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

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

关于javascript - 蜘蛛猴: Why JS array is not inheriting default properties like length,拼接等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817720/

相关文章:

javascript - 如何从 JavaScript 中的 Promise 调用返回键值映射?

c++ - 为什么以下代码不会产生段错误?

c++ - 简单的套接字程序偶尔会失败

javascript - 如何在 SpiderMonkey JSNative 回调中获取 javascript 调用者源行号?

javascript - 当所有输入字段都有内容时显示 div

javascript - 粘性菜单栏,从底部开始,然后停留在顶部

javascript - 如何在命令行上使用 SpiderMonkey 读取(本地)文件的内容?

javascript - 为什么浏览器支持对象的隐式函数属性

javascript - 有人可以详细解释一下这个 JavaScript 小数舍入函数吗?

c++ - 从标准输入读取文本直到遇到一个确切的字符,保存它,然后继续读取直到行尾