代碼示例
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
注意
低版本瀏覽器不支持這種用法