代码1:<pre name="code" class="html"><html>
<head>
<script type="text/javascript">
function add(number)
{
alert(number + 20);
}
/*
var add = function(number)
{
alert(number);
}
*/
function add(number, number1)
{
alert(number);
alert(number1);
}
/*
var add = function(number, number1)
{
alert(number + 30);
}
*/
add(10);
</script>
</head>
<body>
</body>
</html>在JavaScript中,函数(function)就是对象。由代码1可知,function其实是一个对象,而var add中的add就是指向这个对象的一个引用。
在JavaScript中,没有方法(函数)重载的概念。因为add是一个引用,后一个add引用会重新覆盖前一个对象
代码2:
<html>
<head>
<script type="text/javascript">
//add(20);
var add = new Function("number", "number1", "alert(number + number1);");
var add = new Function("number", "alert(number + 20);");
add(10, 30);
</script>
</head>
<body>
</body>
</html>
在JavaScript中有一个Function对象,所有自定义的函数都是Function对象类型的。Function对象接收的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。
代码3:
<html>
<head>
<script type="text/javascript">
function add(number1, number2)
{
alert(arguments.length);
alert(arguments[0]);
alert(arguments[1]);
alert(arguments[2]);
}
//add(2, 3, 4);
function add2()
{
if(1 == arguments.length)
{
alert(arguments[0]);
}
else if(2 == arguments.length)
{
alert(arguments[0] + arguments[1]);
}
else if(3 == arguments.length)
{
alert(arguments[0] + arguments[1] + arguments[2]);
}
}
add2(3);
add2(3, 4);
add2(3, 4, 5);
</script>
</head>
<body>
</body>
</html>
在JavaScript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。可以通过argument参数一定程度上模拟函数的重载。例如代码3中的add2

本文深入探讨了JavaScript中函数作为对象的特性,解释了函数引用和覆盖的概念,并通过实例展示了Function对象的使用方法,以及如何利用arguments对象进行参数数量的灵活处理。同时,介绍了如何通过Function对象自定义函数,实现类似函数重载的功能。
1589

被折叠的 条评论
为什么被折叠?



