關於JS的可選引數,該知道的都在這裡了
- 2022-11-26
我是一枚土生土長的iOS程式猿,之所以會寫關於JS的文章,主要是因為我最近在負責組裡的部分運營需求,所以寫前端也逐漸比較多,於是乎學習JS勢在必行,所以就開寫了。
我們都知道函式是js裡的一等公民,並且在js裡,你宣告一個函式——你可以定製多個引數,與此同時,你在呼叫該函式的時候不需要傳入所有的引數,它就能正常執行——只不過這些引數預設就是 undefined 而已。所以似乎js的函式天生就帶有可選引數這個功能,只不過在你不進行定製的時候它們都具有一個“統一”的值罷了。
所以,我們也知道,除非函數里就實現了針對某個引數為 undefined 時的行為,讓引數為 undefined 是比較危險的。
該如何實現函式內的可選引數,我們將用js裡的構造方法來舉例(假如我們要實現一個Person類):
通常我們都會這麼實現,現在假想我們要將 height 和 weight 引數設為可選引數,可選引數的實質就是
令未被賦值的引數具有一個預設值
,直白地處理,我們可以寫成這樣:
但是因為我們這裡的引數只是簡單的賦值給屬性,所以我們可以這麼寫:
面對這樣的實現,不難發現它還有點問題——這種實現永遠只能把可選引數連續地宣告在函式的末端,必要的引數必須得放前面,因為它只能這樣生成:
假如我是 age 和 weight 為可選引數呢?
因為這樣子賦值,沒法讓 170cm 賦到 height 屬性上,只會賦到 age 屬性上,這顯然不是我們想要的。
一種簡便的解決方法是不定義這麼多的引數賦值,而統一使用一個物件來進行賦值:
而在es6裡,它支援了為引數提供預設值,所以你可以這麼幹:
上一篇:電腦平車自動剪線太短怎麼調?
下一篇:色彩畫布褶投影怎麼調顏色