jQuery - 使全局变量可用于多个插件

fra*_*lic 4 javascript configuration jquery global-variables jquery-plugins

我有一组jQuery插件,我正在为一个网站创建.

所有这些插件都具有通用功能,可以进行$ .getJSON()调用.

这些调用中传递的URL因Dev,QA和生产环境而异.

我想将URL存储在一个中心位置,以便可以轻松更改.

网址应该存储在哪里?我不想将URL存储在每个插件中.可以将它定义为全局变量,还是将其作为传递给插件的参数更好?

Dou*_*ner 15

我建议你使用附加到jQuery对象的对象文字.请确保在所有插件之前包含它:

jQuery.YourCompany = {
   url: "http://thedomain.com"
};
Run Code Online (Sandbox Code Playgroud)

然后你需要的任何地方,只需使用

jQuery.YourCompany.url
// or
$.YourCompany.url
Run Code Online (Sandbox Code Playgroud)

如果将对象/类与$.fn函数结合使用,还可以将此全局变量用作命名空间:

jQuery.YourCompany.PluginOne = function(el){
 ....
}

// But not on the fn object:

jQuery.fn.pluginOne = function(){
    return this.each( function() {
       var po = new jQuery.YourCompany.PluginOne(this);
    });
}
Run Code Online (Sandbox Code Playgroud)