これはおそらく愚かな間違いですが、私は問題を見ることができません。 Angularjsアプリで画像ギャラリー用のオブジェクトの配列を作成しようとしています。各写真オブジェクトにはthumb
とimg
という属性があります。 for
ループは細かいオブジェクトを作成していると私はそれらをチェックするために、コンソールにそれぞれのログを記録しています:角度アプリのFORループの予期しない動作
{thumb: "/10000/0_t.jpg", img: "/10000/0_l.jpg"}
{thumb: "/10000/1_t.jpg", img: "/10000/1_l.jpg"}
{thumb: "/10000/2_t.jpg", img: "/10000/2_l.jpg"}
...
しかし、このコードを実行した後:最終console.log
が私に与え
var images = [];
var image = {};
for (var i = 0; i < property.images.length; i++) {
image.thumb = "/" + property.id + "/" + i + "_t.jpg";
image.img = "/" + property.id + "/" + i + "_l.jpg";
console.log(image); //this gives expected output
images.push(image);
};
console.log(images); //this gives all entries as the same
:
を{thumb: "/10000/27_t.jpg", img: "/10000/27_l.jpg"} //X28
各画像。 27の画像は28の画像があるという事実から来ますが、私はなぜそれらのすべてが同じ経路を持っているのか理解できません。
閉鎖、それを見て... Mr.Polywhirl @ –
私はそれは、クロージャとは何かを持っているかわかりません。 .. – sp00m
@ Mr.Polywhirl、クロージャでも各繰り返しで同じオブジェクトを参照します。あなたが考えているのはまったく別の問題です。 – Thomas