代码示例
var func=function(a=123){
console.log(a);
}
func("foo");//"foo"
一开始可能会疑惑,调用func的时候,a不是永远等于123了吗?
解析
参数a的过程是这样的。当调用func函数的时候,实参"foo"
被传入,
- 函数内部产生arguments对象,并将
"foo"
作为参数写入,arguments[0]="foo"
,arguments得到初始化 - 形参a默认值为123。将形参a赋值为实参,传入函数体内。
a=arguments[0];
,所以此时a参数为"foo",而非123
注意
低版本浏览器不支持这种用法