代码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>
代码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>