背景
我们有一个Web应用程序,其中几个开发人员编写了几个操作DOM的.js文件,并且重复的函数名称问题已经渗透到我们的应用程序中.
题
任何人都可以推荐一个工具,当我们意外地编写一个带有两个同名javascript函数的网页时,它会警告我们吗?
例
HTML页面
<script language="JavaScript" src="test.js" type="text/javascript"></script>
<script>function foo() {alert('bar');}</script>
Run Code Online (Sandbox Code Playgroud)
test.js
function foo() {alert('foo');}
Run Code Online (Sandbox Code Playgroud)
由于foo()在页面中声明了两次,显然只加载了优先级.
我用过的工具似乎忽略了这一点.Firebug仅显示加载的功能.Netbeans将在导航器中显示这两个功能(没有警告),但一次只查看一个文件(即,我无法将其指向HTML文件并同时查看它和.js.)和web开发人员扩展允许我一次查看所有内容,但没有错误或警告.Firefox的错误控制台也不会抛出任何警告或错误.IE也不是.
谢谢!
好吧,使用解析器可能并不总是理想的,因为它需要一个额外的步骤,将您和其他人的代码复制和粘贴到解析器中,即使这样,我也不确定它会捕捉到您想要的内容。久经考验的协作 Javascript 开发解决方案是为您的代码命名。
var myNamespace = function (){
var myPrivateProperty;
var myPrivateFunction = function(){};
return{
myPublicProperty: '',
myPublicFunction: function(){}
}
}();
Run Code Online (Sandbox Code Playgroud)
这是基于 Douglas Crockford 的模块模式。
然后你可以这样调用你的公共函数:
myNamespace.myPublicFunction();
Run Code Online (Sandbox Code Playgroud)
以及您的公共属性:
myNamespace.myPublicProperty;
Run Code Online (Sandbox Code Playgroud)
每个开发者都可以在自己的命名空间中进行开发,以免踩到别人的代码。
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |