我可能會將它們構建爲一個數組,而不是用一堆指向不同Image
對象的單獨變量污染您的名稱空間。
var imgs = [];
var numImgs = 10;
// In a loop, build up an array of Image objs
for (var i=0; i<numImgs; i++) {
imgs.push(new Image());
// Initialize properties here if necessary
imgs[i].src = 'http://example.com';
}
// imgs now holds ten Image objects...
// Access them via their [n] index
img[3].src = 'http://stackoverflow.com';
這是不會有太大的不是創建多個變量或多或少的效率,但可以肯定的是更容易讓他們有組織的。在初始化它們時你會節省幾行代碼,但從長遠來看,這相當於一個微型優化,它只會產生微不足道的影響。
請注意,如果你真的想爲每個Image
文本描述符,你可以選擇使用對象{}
不是數組[]
,並設置其屬性小描述信息。你甚至可以通過數組初始化:
var imgNames = ['stackoverflow','google','example'];
var imgs = {}
// Initialize object properties in a loop
for (var i=0; i<imgNames; i++) {
// Initialize a property in the object from the current array value using [] notation
imgs[imgNames[i]] = new Image();
}
// Then you can access them by their property name:
imgs.google.src = 'http://www.google.com';
imgs.stackoverflow.src = 'http://stackoverflow.com';
這近乎表現得像一個PHP或Perl關聯數組對象的誤用了一點,但如果你的名字需要他們,而會提供方便的圖像而不是像上面的數組方法那樣使用數字鍵。
最好的最常見?最快最快?儘量使用最少量的代碼?定義最佳。 – j08691
「最好」的方式來組織代碼,以便可能使用的代碼更少,並有助於加快代碼的速度。 – JaPerk14
基本上這種方法在大多數語言中都會生成一個淺拷貝 - 你會得到很多指向同一個對象的變量。另一個問題是 - 如果你創建的對象是不可變的。 – Bakudan