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

これらの5ページには、コードを解読するために必要なすべての情報が含まれています。

于 2012-03-31T03:08:36.890 に答える