2

ここで何が間違っているのか理解するのに苦労しています。

空のオブジェクトがあります:

if ( doc._attachments === undefined ){
    doc._attachments = {};
}
var attmtid = 123;

私は次のように入力しようとしています:

doc._attachments[attmtid].revpos = "abc";

ただし、Firebug から未定義のエラーが発生し続けます。

doc._attachments[attmtid] is undefined

そして、それを本当に理解することはできません。

質問:
誰かが私が間違っていることを教えてもらえますか?

ありがとう!

4

3 に答える 3

6

しない理由:

doc._attachments[attmtid] = {
    revpos: "abc"
};
于 2012-12-11T16:27:56.437 に答える
5

doc._attachments[attmtid]は未定義です。つまり、何かとして定義する必要があります。配列、オブジェクト、文字列など。たとえば、別のオブジェクトにすることができます。

doc._attachments[attmtid] = {};

そして、そのオブジェクトのプロパティを設定できるようにします:

doc._attachments[attmtid].revpos = "abc";
于 2012-12-11T16:28:48.247 に答える
2

doc._attachments[attmtid]はオブジェクトに初期化されないため、revposプロパティを動的に割り当てることはできません。

これで解決するはずです:

doc._attachments[attmtid] = {};
doc._attachments[attmtid].revpos = "abc";

doc._attachments.123注:これは、プロパティではなく、プロパティ(質問のサンプルコードが作成するもの)が必要であるという期待に基づいていdoc._attachments.attmidます。

于 2012-12-11T16:32:12.197 に答える