JavaScript 實戰開發經驗!“智力”測試

前端入門到精通發表於2018-02-04

掌握JavaScript程式碼的你,一定編寫封裝過函式,為了提升函式的控制性,必不可少的就是引數,必選可選的一大堆引數羅列出來,函式呼叫貌似變得麻煩起來~~~

Tips:

必選引數指的是必須要傳入實參的引數;

可選引數在函式中有預設值,如有傳入實參,則取實參的值,如果沒有傳入實參,則使用預設值。

函式的眾多引數問題

當一個函式既有必選引數,又有可選引數,在定義函式時,我們可能採取的方式是:無論引數是可選引數還是必選引數,都將引數羅列下來(通常按照先必選再可選的順序)

但是這樣的羅列方法,會導致一些問題的產生!

舉例來說:有一個功能函式h5course,name和domain為其必選引數,而minAPP和book為其可選引數,而我們如此定義函式:


函式的眾多引數問題 -   

web前端JavaScript技術學習交流群640633433

此時,呼叫函式,需要傳入name、domain、book這三個引數,那麼,問題來了!

由於在函式定義當中,book的引數位置位於minApp引數之後,在呼叫函式時,如果希望為book這個引數傳入值,就必須按照如下方式進行書寫:

h5course('name引數值', 'domain引數值', '', 'book引數值');

不難發現,當前第三個引數的處理就變得麻煩起來。於是乎,可能很多人會在函式中通過新增if判斷,來進行引數控制 ——


函式的眾多引數問題   

此時仍然存在這樣兩個問題:

第一,函式的呼叫者必須要了解函式內部的引數判斷方式,才能夠正確書寫“不需要的可選引數”

第二,在呼叫多個可選引數的函式時,呼叫程式碼會變得很麻煩(當然你可以為函式新增註釋,降低使用時的難度)

更好的函式引數書寫方法!

面對如上的這些問題,下面這種方法,你值得擁有!

1 用物件替代掉原有的單個引數傳遞方式

2 函式內部使用arguments替換原有的形參

3 利用for-in迴圈,修改可選引數的預設值

一起來用此方法調整一下h5course函式


更好的函式引數書寫方法!   

在此段程式碼當中,傳入了三個引數

for-in迴圈當中,為defaultValue新增了name和domain的值,並修改了minApp的內容

函式呼叫時,引數的處理會變得更方便簡單,但是也要注意,為了讓使用者清晰瞭解哪些引數是必須的,建議在函式前面新增合理註釋!

HTML5 佈局之路 水木書薈

¥71.2

購買

web前端JavaScript技術學習交流群640633433

來個“智力”測試?

生活艱辛,程式碼不易,但,不要忘記微笑!


請只考慮水龍頭流水較慢的情況  

相關文章