| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
ECMAScript 函数的一个重要特点: 命名的参数只提供便利,但不是必须的。另外在命名参数方面,其他语言可能需要事先创建一个函数签名(即形参),而将来的调用必须与该签名一致。但在ECMAScript中,没有这些条条框框,解析器不会验证命名参数。运用这一特性,可实现函数的“重载”。
function doAdd(arg1, arg2) {
// 由于 arguments[0] 与 arg1 值相同,因此他们可以互换使用。
// arguments 的值永远与对应命名参数的值保持同步。
arguments[1] = 10;
console.log(arg2); // 10
}
doAdd(10, 20);关于参数:没有传递值的命名参数将自动被赋予 undefined 值。这就跟定义了变量但又没有初始化一样。例如:
function doAdd(arg1, arg2){
console.log(arg1); // 10
console.log(arg2); // undefined
}
doAdd(10)ECMAScript 中的所有参数传递的都是值,不可能通过引用传递参数。
ECMAScript 函数不能像传统意义上那样实现重载。而在其他语言中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可。ECMAScript函数没有签名,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可能做到的。
ECMAScript 中的函数与其他语言中的函数有诸多不同之处。
| Back | FazBrowse Home | New Git URL |