我有一个函数onChangeBrand()
在A.js和B.js有一个相同的名称。如何调用一个javaScript函数
那么如何避免这种情况呢?有一个约束 - 我不能更改函数名称。 并且我不允许编辑两个Js文件,所以命名空间对我来说不是一个正确的想法。
我们可以称之为像A.onChangeBrand()
或B.onChangeBrand()
?
我有一个函数onChangeBrand()
在A.js和B.js有一个相同的名称。如何调用一个javaScript函数
那么如何避免这种情况呢?有一个约束 - 我不能更改函数名称。 并且我不允许编辑两个Js文件,所以命名空间对我来说不是一个正确的想法。
我们可以称之为像A.onChangeBrand()
或B.onChangeBrand()
?
好吧,如果命名空间是不适合你,你可以把你的代码在script
标签之间加载这些文件
<script src='a.js'></script>
<script>
var a_onChangeBrand = onChangeBrand; // copy the function
</script>
<script src='b.js'></script>
是a_onChangeBrand()
后会调用由从B a.js和onChangeBrand()函数.js文件
但什么都不会帮助你,如果这些a.js和b.js一些功能也使用这些功能 - 它们可能从最后一个加载的文件中调用函数。
这是一些开箱即用的想法。谢谢@Cheery – BOSS 2012-02-10 07:55:37
检查如何使用命名空间在JavaScript中,如果你可以编辑这两个文件a.js和b.js那么你可以声明命名空间。见最佳答案在这里:How do I declare a namespace in JavaScript?
你可以给你的功能之一..
var myNS = new (function() {
this.onChangeBrand= function() {
alert('hello!');
};
})();
,然后调用myNS.onChangeBrand();
同样使用myNS2其它功能。这些被称为名称空间。
如果您没有访问源,再下面是一个解决方案(不是最漂亮的,你要知道):
<script src="http://exmpale.com/a.js"></script>
<script>
A = { onChangeBrand:onChangeBrand };
</script>
<script src="http://exmpale.com/b.js"></script>
<script>
B = { onChangeBrand:onChangeBrand };
</script>
两个功能现在命名空间,并且可以调用像这样:
A.onChangeBrand();
B.onChangeBrand();
你能够把你的js代码放在页面之间'脚本'标签加载这些文件? – Cheery 2012-02-10 07:16:38
是@Cherry我以他们在我的SRC – BOSS 2012-02-10 07:18:37
我的绰号是略有不同。第二个问题 - 这些函数是否有来自这些文件的调用,或者只有您使用它们? – Cheery 2012-02-10 07:20:18