javascript
html中函数传递多个值,JavaScript 实战开发经验!函数多参数传参技巧
HTML5學(xué)堂-碼匠:掌握J(rèn)avaScript代碼的你,一定編寫封裝過函數(shù),為了提升函數(shù)的控制性,必不可少的就是參數(shù),必選可選的一大堆參數(shù)羅列出來,函數(shù)調(diào)用貌似變得麻煩起來~~~
Tips:
必選參數(shù)指的是必須要傳入實(shí)參的參數(shù);
可選參數(shù)在函數(shù)中有默認(rèn)值,如有傳入實(shí)參,則取實(shí)參的值,如果沒有傳入實(shí)參,則使用默認(rèn)值。
函數(shù)的眾多參數(shù)問題
當(dāng)一個(gè)函數(shù)既有必選參數(shù),又有可選參數(shù),在定義函數(shù)時(shí),我們可能采取的方式是:無論參數(shù)是可選參數(shù)還是必選參數(shù),都將參數(shù)羅列下來(通常按照先必選再可選的順序)
但是這樣的羅列方法,會(huì)導(dǎo)致一些問題的產(chǎn)生!
舉例來說:有一個(gè)功能函數(shù)h5course,name和domain為其必選參數(shù),而minAPP和book為其可選參數(shù),而我們?nèi)绱硕x函數(shù):
此時(shí),調(diào)用函數(shù),需要傳入name、domain、book這三個(gè)參數(shù),那么,問題來了!
由于在函數(shù)定義當(dāng)中,book的參數(shù)位置位于minApp參數(shù)之后,在調(diào)用函數(shù)時(shí),如果希望為book這個(gè)參數(shù)傳入值,就必須按照如下方式進(jìn)行書寫:
h5course('name參數(shù)值', 'domain參數(shù)值', '', 'book參數(shù)值');
不難發(fā)現(xiàn),當(dāng)前第三個(gè)參數(shù)的處理就變得麻煩起來。于是乎,可能很多人會(huì)在函數(shù)中通過添加if判斷,來進(jìn)行參數(shù)控制 ——
此時(shí)仍然存在這樣兩個(gè)問題:
第一,函數(shù)的調(diào)用者必須要了解函數(shù)內(nèi)部的參數(shù)判斷方式,才能夠正確書寫“不需要的可選參數(shù)”
第二,在調(diào)用多個(gè)可選參數(shù)的函數(shù)時(shí),調(diào)用代碼會(huì)變得很麻煩(當(dāng)然你可以為函數(shù)添加注釋,降低使用時(shí)的難度)
更好的函數(shù)參數(shù)書寫方法!
面對(duì)如上的這些問題,下面這種方法,你值得擁有!
用對(duì)象替代掉原有的單個(gè)參數(shù)傳遞方式
函數(shù)內(nèi)部使用arguments替換原有的形參
利用for-in循環(huán),修改可選參數(shù)的默認(rèn)值
一起來用此方法調(diào)整一下h5course函數(shù)
在此段代碼當(dāng)中,傳入了三個(gè)參數(shù)
for-in循環(huán)當(dāng)中,為defaultValue添加了name和domain的值,并修改了minApp的內(nèi)容
函數(shù)調(diào)用時(shí),參數(shù)的處理會(huì)變得更方便簡單,但是也要注意,為了讓使用者清晰了解哪些參數(shù)是必須的,建議在函數(shù)前面添加合理注釋!
來個(gè)“智力”測試?
生活艱辛,代碼不易,但,不要忘記微笑!
總結(jié)
以上是生活随笔為你收集整理的html中函数传递多个值,JavaScript 实战开发经验!函数多参数传参技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html上传文件_.NET基于WebUp
- 下一篇: python redis 消息队列_Py