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