js獲取指定函式的形參程式碼例項
獲取函式形式引數的數目非常的簡單,使用函式物件的length屬性即可。
但是有可能可能需要更為精確一點,那就是獲取函式的形參具體是什麼。
下面就是一段能夠實現此功能的程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function getFuncParameters(func){ if(typeof func=='function'){ var mathes = /[^(]+\(([^)]*)?\)/gm.exec(Function.prototype.toString.call(func)); if(mathes[1]){ var args=mathes[1].replace(/[^,\w]*/g, '').split(','); return args; } } } function done(x,y,z){ //code } console.log(getFuncParameters(done));
上面的程式碼實現了我們的要求,下面介紹一下此功能的實現過程。
一.程式碼註釋:
1.function getFuncParameters(func){},引數是要獲取引數的函式物件。
2.if(typeof func=='function'),判斷引數是不是函式。
3.var mathes = /[^(]+\(([^)]*)?\)/gm.exec(Function.prototype.toString.call(func)),這個程式碼是重點,下面做一下分解:Function.prototype.toString.call(func)此程式碼能夠獲取函式func的原始碼字串,前面的正規表示式可以匹配函式原始碼字串的函式名稱和括號中內容,包括括號。
4.if(mathes[1]),判斷匹配結果陣列中的第二元素是否存在,也就是正規表示式第一個字表示式是否匹配了內容,在上面的正規表示式中,第一個字表示式匹配的內容就是函式的引數內容,例如"x,y,z"。
5.var args=mathes[1].replace(/[^,\w]*/g, '').split(','),把非字母和逗號都地換位空字元,然後用逗號分隔生成一個陣列。6.return args,返回這個陣列。
二.相關閱讀:
1.exec()函式可以參閱正規表示式exec()函式一章節。
2.call()函式可以參閱js call()函式用法介紹一章節。
3.replace()函式可以參閱正規表示式使用replace()函式簡單介紹一章節。
4.split()函式可以參閱javascript split()函式使用介紹一章節。
相關文章
- js獲取指定單元格的內容程式碼例項例項JS
- js獲取指定區間的隨機數程式碼例項JS隨機
- jQuery獲取指定的li元素程式碼例項jQuery
- 獲取javascript函式形參的數目JavaScript函式
- jQuery獲取指定元素的父元素程式碼例項jQuery
- css獲取指定元素的兄弟元素程式碼例項CSS
- 獲取指定區間的li元素程式碼例項
- javascript獲取指定元素父元素程式碼例項JavaScript
- js獲取指定位數不重複隨機數程式碼例項JS隨機
- js實現的獲取指定元素的節點封裝程式碼例項JS封裝
- js實現的獲取指定時間前幾天日期程式碼例項JS
- 使用jquery獲取指定元素的子元素程式碼例項jQuery
- jquery獲取指定元素的父節點程式碼例項jQuery
- js獲取指定月份最後一天日期程式碼例項JS
- jquery獲取指定型別子元素程式碼例項jQuery型別
- javascript獲取和刪除指定cookie程式碼例項JavaScriptCookie
- 獲取指定元素下所有li元素程式碼例項
- js獲取事件的型別程式碼例項JS事件型別
- js獲取當前月份例項程式碼JS
- js獲取事件源物件程式碼例項JS事件物件
- js獲取主機域名程式碼例項JS
- js冪函式程式碼例項分享JS函式
- js獲取table表格指定行和列的單元格內容程式碼例項JS
- 獲取url傳遞的指定引數值程式碼例項
- js獲取距離指定時間已經過去多久程式碼例項JS
- jquery獲取指定元素下所有指定子元素的數目程式碼例項jQuery
- js函式作為函式的引數程式碼例項JS函式
- js獲取元素的實際尺寸程式碼例項JS
- 用JS獲取函式相關的程式碼JS函式
- js獲取字串中指定位置字元程式碼例項JS字串字元
- js獲取字串指定位置字元效果程式碼例項JS字串字元
- js獲取滾動條高度例項程式碼JS
- js獲取選中文字程式碼例項JS
- js confirm()函式用法程式碼例項JS函式
- javascript獲取指定月份的最後一天例項程式碼JavaScript
- jQuery獲取指定型別最近的父輩元素程式碼例項jQuery型別
- 正規表示式獲取cookie程式碼例項Cookie
- 獲取第一級指定型別子元素程式碼例項型別