是否有一种首选方法可以将.js文件中的函数与页面上其他.js文件的潜在冲突隔离开来?
例如,如果你有一个功能
function AddTag(){}
在Core.js中然后有一个
function AddTag(){}
在Orders.js中他们会发生冲突。您如何最好地构建.js文件以及您将使用哪些命名约定来隔离它们?
由于
答案 0 :(得分:20)
我将函数的范围限制为该文件。
(function () {
var AddTag = function AddTag () {
};
}());
...有时会使其中的某些功能可用于全局范围:
var thisNamespace = function () {
var AddTag = function AddTag () {
…
};
var foo = function foo() {
AddTag();
…
};
var bar = function bar() {
…
};
return {
foo: foo,
bar: bar
}
}();
答案 1 :(得分:7)
您可以使用'命名空间'。喜欢这个
File1.js:
var Orders = {}
(function(o) {
o.function1 = function() {}
o.function2 = function() {}
})(Orders);
File2.js
var Sales = {}
(function(o) {
o.function1 = function() {}
o.function2 = function() {}
})(Sales);
你可以像这样调用它们:
Sales.function1();
Orders.function1();
一般不要使用全局函数/变量。在这里阅读javascript模块模式http://yuiblog.com/blog/2007/06/12/module-pattern/
答案 2 :(得分:0)
使用封装(http://www.devx.com/gethelpon/10MinuteSolution/16467和http://nefariousdesigns.co.uk/archive/2006/05/object-oriented-javascript/)
在fileA.js中
function fileA()
{
this.function1 = function()
{
return 'foo';
};
}
在fileB.js
中function fileB()
{
this.function1 = function()
{
return 'bar';
};
}