您的位置:首页 > Web前端 > JavaScript

JavaScript为什么不支持重载

2008-08-13 16:13 260 查看
javascript为什么不支持重载呢?看下面两个函数:

function AddNum(a)

{

alert(12+a);

}

function AddNum(b,c)

{

alert(13+b);

}

当我们在html里调用AddNum函数的时候,事实上我们是调用了后面的一个function。例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script>

function AddNum(a)

{

alert(12+a);

}

function AddNum(b,c)

{

alert(13+b);

}

</script>

<title>无标题文档</title>

</head>

<body onload="AddNum(1)">

</body>

</html>

注:这个例子中,alert弹出的其实是“14”,即它是调用了后一个函数的值。

其实我们可以通过Function类来改写上面两个方法,就一目了然了。

AddNum = Function("a","alert(12+a)");

AddNum = Function("b","c","alert(13+b)");

函数名是指向Function对象的一个引用,可见AddNum被指向了新的对象。将上面的function替换如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script>

AddNum = Function("a","alert(12+a)");

AddNum = Function("b","c","alert(13+b)");</script>

<title>无标题文档</title>

</head>

<body onload="AddNum(1)">

</body>

</html>

注:结果为“14”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: