0

私は本番エラーを修正するためにスクランブリングを行っており、JS開発者ではありません。分析をさらに進める前に、次のコード行について正しい仮定をしていることを完全に確信する必要があります。

var iVO = {
    "images":{}
};
var thisImage = $(this).data("data");

iVO["images"][thisImage.fileKey] = thisImage;
iVO["images"][thisImage.imageType] = imageType;
iVO["images"][thisImage.uploadReason] = uploadReason;

これが私の仮定です。正しいまたは誤った方向に進んでいる場合は、私を訂正してください。

  • iVOJSONオブジェクトの配列です
  • これらの各JSONオブジェクトには、3つのプロパティ(、、および)が与えfileKeyられimageTypeますuploadReason

私が得られないのは、"images"インデックスの重要性です。値/意味はiVO["images"]何ですか?この最初の/外側の配列が表す情報/オブジェクトは何ですか?

4

2 に答える 2

3

iVOオブジェクトリテラルです。ハッシュのように機能します。

iVO["images"]配列アクセスのように見えますが、この場合、コードはのimagesプロパティにアクセスしていますiVO。最後に、それは、別のオブジェクトリテラルimagesを指すものを返します。{}

var thisImage = $(this).data("data")jquery関数を使用しています。 jQuery.dataのドキュメントはこちらです。 thisImageの呼び出しから返されたデータへの参照ですdata

iVO["images"][thisImage.fileKey] = thisImage;

値を設定するだけです。最初のアクセスは、オブジェクトリテラルであるimages上のプロパティへのアクセスです。iVOそのオブジェクトリテラルから、コードはプロパティthisImage.fileKey(つまり、前の行のデータ呼び出しから取得されたもの)に値を割り当てますthisImage

だから、あなたが言うとき

iVOはJSONオブジェクトの配列です

iVO単一のオブジェクトリテラルであり、プロパティの下に別のオブジェクトリテラルが含まれていimagesます。

そのオブジェクトリテラルには、3つの値が詰め込まれています。キー(プロパティの名前)は、data呼び出しが返したものによって異なります。thisImage値は(データ呼び出しの結果)、および変数imageType、、に依存しますuploadReason

デバッガーを使用してこのコードをステップスルーし、各ステップでの値を確認できます。

ここではJSONが機能しないことに注意してください。json.orgによると、「JSONは完全に言語に依存しないテキスト形式です...」

于 2012-04-24T00:27:18.583 に答える
1

iVOオブジェクトです。このオブジェクトには、imagesそれ自体もオブジェクトであるという名前のプロパティがあります。このオブジェクトには3つのプロパティがあり、その名前はに含まれていthisImageますが、投稿されたコードから内容を判断することはできません。

あなたの最後の質問に答えるために、はとiVO["images"]同等iVO.imagesです。のimagesプロパティですiVO

于 2012-04-24T00:27:44.983 に答える