JavaScript函式多個小括號連續呼叫
在實際應用中可能有類似如下方式的函式呼叫方式:
[JavaScript] 純文字檢視 複製程式碼func(1)(2)(3)
這就是函式柯里化的表現形式(當然並不定有此形式的就是柯里化的函式),下面進行一下簡單介紹:
柯里化又稱部分求值,一個柯里化的函式首先會接受一些傳參,接受了這些傳參之後,函式並不會立即求值,而是繼續返回另外一個函式,剛才傳入的引數在函式內形成的閉包中被儲存起來,到引數被真正求值的時候,之前傳入的引數會被一次性用於求值。
首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(str) { var f = function(s){ return str+", "+s; } return f; } var str = func("antzone")("softwhy"); console.log(str);
上面的柯里化非常的不智慧,如果我們需要連線三個字串就無法正確實現了。
程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(str) { var ret = Array.prototype.slice.call(arguments).join(', '); var temp = function (str) { ret = [ret, Array.prototype.slice.call(arguments).join(', ')].join(', '); return temp; }; temp.toString = function () { return ret; }; return temp; } var tempFunc = func("antzone")("softwhy")("com"); console.log(tempFunc.toString());
上面的程式碼完美實現了字串無限連線的功能。
關於JavaScript函式柯里化的更多內容可以參閱JavaScript 函式柯里化詳解一章節。
相關文章
- JavaScript 函式呼叫時帶括號和不帶括號的區別JavaScript函式
- JavaScript匿名函式要外面巢狀小括號原因JavaScript函式巢狀
- JavaScript 小括號()分組運算子JavaScript
- JavaScript中圓括號()和方括號[]的一個特殊用法JavaScript
- system函式 路徑有多個雙引號,無法呼叫成功函式
- js函式add(1)(2)(3)連續呼叫效果JS函式
- JavaScript 解構賦值小括號的應用JavaScript賦值
- 理解正規表示式中的括號 (),方括號 [] 和大括號 {}
- 小程式呼叫上一個頁面的函式函式
- Javascript的函式呼叫與thisJavaScript函式
- 15.6 用多項式一致逼近連續函式函式
- 理解JavaScript的函式呼叫和thisJavaScript函式
- 7 函式的連續性函式
- js正規表示式獲取字串中多個大括號{}中的內容,包括大括號並放入陣列中JS字串陣列
- [C++]括號使用小技巧C++
- 括號匹配;及找數字續分析
- javascript 判斷括號是否配對。JavaScript
- 微信小程式函式呼叫監控微信小程式函式
- 8 連續函式的運算函式
- vue在一個函式中呼叫另外一個函式Vue函式
- 使用關聯模型的鏈式呼叫時-有無括號的區別模型
- JavaScript 中匿名函式的遞迴呼叫JavaScript函式遞迴
- javascript匿名函式常用呼叫方式介紹JavaScript函式
- javascript函式呼叫方式簡單介紹JavaScript函式
- JavaScript 之有趣的函式(函式宣告、呼叫、預解析、作用域)JavaScript函式
- eval() JSON轉換 小括號 () 作用JSON
- python利用or在列表解析中呼叫多個函式.pyPython函式
- javascript呼叫函式的方式簡單介紹JavaScript函式
- 淺析一個函式呼叫另一個函式的變數函式變數
- 兄弟連go教程(15)函式 - 延遲呼叫Go函式
- 函式極限與連續精簡版函式
- 正規表示式中括號[]字元類字元
- 正規表示式 中括號[] 字元類字元
- C#程式碼與javaScript函式的相互呼叫C#JavaScript函式
- JavaScript 立即執行函式、逗號運算JavaScript函式
- JavaScript取出字串中括號裡的內容JavaScript字串
- 你不知道的JavaScript--Item8 函式,方法,建構函式呼叫JavaScript函式
- 數學分析 連續函式的孤立零點函式