[js]給函數參數設置默認值的優雅方式

代碼示例

var func=function(a=123){
    console.log(a);
}
func("foo");//"foo"

一開始可能會疑惑,調用func的時候,a不是永遠等于123了嗎?

解析

參數a的過程是這樣的。當調用func函數的時候,實參"foo"被傳入,

  1. 函數內部產生arguments對象,并將"foo"作為參數寫入,arguments[0]="foo",arguments得到初始化
  2. 形參a默認值為123。將形參a賦值為實參,傳入函數體內。a=arguments[0];,所以此時a參數為"foo",而非123

注意

低版本瀏覽器不支持這種用法

參考文獻

  1. Clean JavaScript:寫出整潔的JavaScript代碼
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容