使用するコード例がないため、一般化されたソリューションをいくつか紹介します。
- 配列内の設定オブジェクトを収集し、オーバーライド設定領域内でそれらを反復処理します。
- ウィンドウを介してプラグインを公開し、そこに設定を直接追加します。
JS
//File 1.js
window.settings = window.settings || [];
window.settings.push({a:'11'});
//File2.js
window.settings = window.settings || [];
window.settings.push({b:'22', c:'33'});
//File3.js
window.settings = window.settings || [];
window.settings.push({b:'222'});
//Main.js File
;(function ($,window,undefined){
var plugin = function(settings){
var defConfig = {
a: '1',
b: '2',
c: '3'
};
var len = settings.length, i;
if(len){
for(i = 0; i < len; i++){
defConfig = $.extend(defConfig, settings[i]);
}
}else{
defConfig = $.extend(defConfig, settings);
}
alert(JSON.stringify(defConfig));
};
var instance = new plugin(window.settings || []);
})(jQuery,window);
//Main.js File
;(function ($,window,undefined){
var plugin = function(){
var defConfig = {
a: '1',
b: '2',
c: '3'
};
this.overrideSettings = function(settings){
var len = settings.length, i;
if(len){
for(i = 0; i < len; i++){
defConfig = $.extend(defConfig, settings[i]);
}
}else{
defConfig = $.extend(defConfig, settings);
}
alert(JSON.stringify(defConfig));
}
};
window.instance = new plugin();
})(jQuery,window);
//File 1.js
window.instance.overrideSettings({d:'93'});
//File2.js
window.instance.overrideSettings({b:'22222'});