我有一個有趣的問題,我不確定如何最好地解決。動態加載多個JS腳本,其中腳本全部描述相同
我有包含以下JS腳本:
var obj = new namespace.MyObjectName("key", [12, 11, 22, 33, 454, 552, 222], [33, 22, 33, 11, 22, 222, 111]);
namespace.MyObjectName = function(keyName, data1, data2) {
this.myData1 = data1;
this.myData2 = data2;
this.holder = [
[keyName, [myData1, myData2]]
];
};
namespace.MyObjectName.prototype.DoSomething = function(arg1, argArray) {
this.globalVar = [
"Display " + arg1 + " into string using " + argArray[0] + "<br> for visual purposes",
"Display " + arg1 + " into string using " + argArray[2] + "<br> for visual purposes"
];
};
自動化是創建這些JS文件的副本,每個包含對象按照上述的相同的聲明,與沿行的文件名:
- file1.js
- file2.js
的每個文件的不同之處在於,方法名稱內容總是不同/生成,傳遞給構造函數的數組值也是如此。
以上所有內容在單獨使用JS的生命期間都很好。
我現在想要做的是讓一個HTML頁面動態地加載一個或多個這些文件(以供後面的代碼進行比較),爲此我可能會使用 this answer,但是由於每個腳本聲明對象同樣的方式,當我加載多個副本時,我正要面對如何阻止他們彼此踐踏。
這裏是我正在考慮一些選擇:
- 寫JS以這樣一種方式,每個腳本文件對象唯一命名空間,但是當加載寄存器本身以某種方式與在HTML主件的JS代碼它保存到所有的對象引用
- 編寫的HTML這樣一種方式,每個腳本加載隔離的方式(據我所知,沒有辦法在JS中這樣做,但我可能是錯誤的)
- 其他一些方法(s)未知,人們可能有我DEAS上
我現在的偏見是對(1),但我把整個事情進行討論,因爲這種做法可能有固有的問題或其他可清楚地證明優越。
我不太肯定做了什麼? ..將現有的var命名空間分配給自己,否則爲空對象? – 2009-01-29 19:40:00