如果在两个同名同参的JS方法同一个代码段内部,则最后加载的方法会将前一个覆盖掉,反之,如果能在当前代码段找到对应的方法,就立即调用。

javascript出现同名方法会怎样插图

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在JS中,如果存在同名同参的方法,它会先调用哪一个?先看两个例子:

例1:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
$f1();
$f2();
}
function A() {
alert(1);
}
var $f1 = A;
</script>
<script type="text/javascript">
function A() {
alert(2);
}
var $f2 = A;
</script>
</head>
<body>
<form>
<div>
<input type="button" name="Testing" οnclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

结果会弹出:1 2

例2:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
$f1();
$f2();
}
function A() {
alert(1);
}
var $f1 = A;
function A() {
alert(2);
}
var $f2 = A;
</script>
</head>
<body>
<form>
<div>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

结果会弹出:2 2

这和当前的代码段有很大关系,如果在两个同名同参的JS方法同一个代码段内部,则最后加载的方法会将前一个覆盖掉,反之,如果能在当前代码段找到对应的方法,就立即调用。

在JS中,如果存在同名不同参的方法,它会先调用哪一个?再看两个例子:

例1:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
var val = document.getElementById("txtVal").value;
if (val > 10) {
A();
}
else {
A(val);
}
}
function A() {
alert(1);
}
function A(val) {
alert(2);
alert(val);
}
</script>
</head>
<body>
<form>
<div>
Input Value(INT):<input type="text" id="txtVal"/><br>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

例2:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
var val = document.getElementById("txtVal").value;
if (val > 10) {
A();
}
else {
A(val);
}
}
function A() {
alert(1);
}
</script>
<script type="text/javascript">
function A(val) {
alert(2);
alert(val);
}
</script>
</head>
<body>
<form>
<div>
Input Value(INT):<input type="text" id="txtVal"/><br>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

测试结果:同名不同参的方法会用最后加载的方法会将前一个覆盖掉!

【推荐学习:javascript高级教程】

以上就是javascript出现同名方法会怎样的详细内容,更多请关注811轩轩资源网其它相关文章!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注