避免单独的.js文件中javascript函数命名冲突的最佳方法?
是否有一种首选方法可以将.js文件中的函数与页面上其他.js文件由于名称相似而可能发生的冲突隔离开来 例如,如果您有一个函数避免单独的.js文件中javascript函数命名冲突的最佳方法?,javascript,Javascript,是否有一种首选方法可以将.js文件中的函数与页面上其他.js文件由于名称相似而可能发生的冲突隔离开来 例如,如果您有一个函数 function AddTag(){} 在Core.js中,还有一个 function AddTag(){} 在Orders.js中,它们会发生冲突。您将如何最好地构造您的.js文件,以及您将使用哪些命名约定来隔离它们 谢谢我将函数的范围限制在该文件中 (function () { var AddTag = function AddTag () { }
function AddTag(){}
在Core.js中,还有一个
function AddTag(){}
在Orders.js中,它们会发生冲突。您将如何最好地构造您的.js文件,以及您将使用哪些命名约定来隔离它们
谢谢我将函数的范围限制在该文件中
(function () {
var AddTag = function AddTag () {
};
}());
…有时使it中的某些功能可供全球范围使用:
var thisNamespace = function () {
var AddTag = function AddTag () {
…
};
var foo = function foo() {
AddTag();
…
};
var bar = function bar() {
…
};
return {
foo: foo,
bar: bar
}
}();
使用封装(和)
在fileA.js中
function fileA()
{
this.function1 = function()
{
return 'foo';
};
}
在fileB.js中
function fileB()
{
this.function1 = function()
{
return 'bar';
};
}
您可以使用“名称空间”。像这样
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模块模式从技术上讲,上面显示的函数调用是不必要的。如果你有局部变量,你就不想污染全局名称空间,因为Javascript有函数作用域。是的,但是如果你有长名称空间(比如Yahoo使用的名称空间),它们是有用的。它可以避免您每次定义新函数时键入
This.Is.A.Long.Namespace
。您可以只执行o.newFunction=function(){}
,那么在第一个示例中如何调用该函数呢?调用是否必须在外部函数中进行?此外,如果正在使用jQuery$(document).ready(function(){});您可以从该函数中调用这些函数,例如AddTag()?外部函数是否在$(document).ready()内、单独或包含在其中?AddTag();。对是-只要调用在限制范围的函数内。这是我写的匿名函数中的一个函数(就像AddTag)。谢谢。当我移动jQuery$(文档)时。准备好了吗。。。内部(函数(){}());我可以调用私有函数。谢谢