JavaScript函数重名怎么办?

来源:百度知道 编辑:UC知道 时间:2024/09/22 16:44:17
做jsp开发时,调用了两个js文件,其中有一个函数是重名的,
怎么解决这个问题?前提是js文件不能修改
两个方法都有用,而且效果不一样,怎么办....
都没有参数

1.js
function aa(){...}
2.js
function aa(){...}

你不能修改JS文件,但是你可以修改调用JS里的函数的文件吗?
如果可以的话,重命名第一个函数的名,把调用它的地方都换了。否则没有办法。

我写的简单点
<head>
<script src="1.js"></script>
var bb = aa;
<script src="2.js"></script>
这个时候1.js里的函数aa就可以以bb来调用。实际上是aa和bb都指向同一个函数对象。
再有一个简单的例子
a = alert;
alert = function(){a('m')}
这样window的默认方法alert就被改变了alert();却弹出m

,因为脚本在页面里本身就是顺序执行下来的,包括函数的定义,但然如果只是定义 function foo(){}
这种形式,我们是跟踪不到函数初始化的。可是如果是定义类的方式,我们就可以明显地跟踪到函数的初始化顺序。比如:

function foo() {}
function foo.prototype.fn1() {}
function foo.prototype.fn2() {}

我们就可以明显地看到先执行function foo.prototype.fn1(){}再执行function
foo.prototype.fn2(){}。

回到我们刚才说的JavaScript脚本函数重名问题上来,比如我们定义两个函数 funAlert():

function funAlert()
{
alert('A');
}

function funAlert()
{
alert('B');
}

调用 funAlert(),那么将显示一个MegBox,内容为'B'