JS function重写方式
我们知道正常function的格式是:
function functionName(arg0,arg1,.....,argN){
statements
}
function sayHi(name,message){
alert("hello" + name + message)
}
其实ECMAScript函数是不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型的。因为ECMAScript中的参数在内部是用一个数组来表示的。函数只是接受这个数组,而不关心数组中包含哪些参数。实际上,在函数体内通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
其实,arguments对象只是与数组类似(它并不是Array的实例),因为可以使用方括号语法访问它的每一个元素(第一个元素是arguments[0],第二个元素是arguments[1]),使用length属性来确定有多少个参数。所以上面的那个函数也可以这样来重写:
function sayHi(){
alert("hello" + arguments[0] + arguments[1])
}
这样重写后function不包含参数,但function的功能还是一样的。虽然这个特性算不上完美的重载,但也足够弥补ECMAScript这一缺憾了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。