一个javascript文件会杀死所有其他文件。如何避免这种情况?

时间:2011-11-30 10:20:09

标签: javascript

我不会在这里添加任何代码。只是在这个项目上工作,不仅是这次,而且经常有一个javascript文件杀死其他人,所以我在这种情况下寻找类似的解决方案(让我们说一个不同的滑块等)。

但是有没有更多的方法来包装一些javascript文件它不会干扰其他文件?

3 个答案:

答案 0 :(得分:5)

请详细说明您的意思 - 但我有一种感觉。

使用命名空间。

如果您使用不同库的集合,如果您没有使用名称空间,则可能会发生库具有相同的全局名称。

通常发生碰撞的示例:

function dontdothis() { 
   alert("Foo"); 
} 
function dontdothis() { 
   alert("Bar"); 
} 
dontdothis();

如何避免这些冲突的示例:

var myownspace={}; 
myownspace.dothis=function() { 
    alert("Foo"); 
} 
function dothis() { 
    alert("Bar"); 
} 
myownspace.dothis();

答案 1 :(得分:3)

一般情况下,JavaScript的每个亵渎chuck都应该包含在一个API中,该API通过一个全局(具有非通用名称)暴露给广阔的世界,因此YAHOO是合理的。不太可能被其他东西使用,而$很糟糕。

这称为namespacing

答案 2 :(得分:2)

如果我正确理解了您的问题,那么您的解决方案就是命名空间。

var APP = {};
APP.namespace = function(sNamespace) {
    if ("undefined" == typeof APP[sNamespace]) {
        APP[sNamespace] = {};
    }
}

用法:

APP.namespace("profile");
APP.profile.AskQuestionDialog = function(oConfigs) { ... }

DOM树:

 -window
   -APP
     -profile

您应该使用APP.namespace()

在每个文件的开头定义命名空间