我的脚本中有一堆函数,它们位于 .js 文件中。如果其他人编写的其他脚本使用与我的脚本中相同的函数名称,如何避免与同一页面中的函数名称发生冲突?
有没有办法做到这一点?
如果您不需要在脚本之外访问这些函数,则可以将整个脚本包装在立即调用的函数表达式中:
(function () {
// Your code here
}());
这引入了一个新的范围,因此其中的任何声明在其外部都是不可见的。
如果您确实需要在该范围之外进行访问,请将您的函数公开为“命名空间”的方法:
var YourStuff = (function () {
// Private functions etc...
// Expose public methods
return {
someMethod: function () {}
};
}());
通过采用这种方法,您只需引入一个全局标识符,从而减少发生冲突的机会。您可以按如下方式调用该方法:
YourStuff.someMethod();
使用命名空间..
var company = {};
company.doSomething = function() {
};
company.project = {};
company.project.submodule = {};
company.project.submodule.doSomething = function() {};