手寫簡單.bind()實現(xiàn)

手寫一個實現(xiàn)柯里化的.bind()

柯里化:《函數(shù)柯里化小結(jié)》
柯里化:前端開發(fā)者進階之函數(shù)柯里化Currying
bind():Javascript中bind()方法的使用與實現(xiàn)

函數(shù)柯里化(個人理解):一個函數(shù)只接收單個參數(shù),但是函數(shù)層層嵌套并return,可實現(xiàn)預(yù)設(shè)參數(shù)(參數(shù)復(fù)用)、提前返回(理解不是很透徹)、延遲執(zhí)行(ES5的bind())。

// 實現(xiàn)一個函數(shù)柯里化的原生bind方法  
Function.prototype._bind = function (context) {
  let self = this;
  let firstArg = Array.prototype.slice.call(arguments,1);
  return function () {
    let secArg = Array.prototype.slice.call(arguments);
    let finishArg = firstArg.concat(secArg);
    return self.apply(context,finishArg);
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文鏈接 Haskell和scala都支持函數(shù)的柯里化,JavaScript函數(shù)的柯里化還與JavaScript的...
    dreamapple閱讀 2,661評論 0 24
  • 簡介 柯里化從何而來 柯里化, 即 Currying 的音譯。 Currying 是編譯原理層面實現(xiàn)多參函數(shù)的一個...
    流動碼文閱讀 3,233評論 0 2
  • 人生很多第一次 第一次做的事情都是特別激動的 這不,我就第一次來染發(fā) 可以說至今為止,拉過兩次頭發(fā),燙過一次頭發(fā),...
    花兒的博文閱讀 280評論 0 0
  • 海關(guān)總署最新發(fā)布的數(shù)據(jù)顯示,今年前5個月,我國貨物貿(mào)易進出口總值10.76萬億元,比去年同期增長19.8%。其中,...
    譚浩俊閱讀 275評論 0 0
  • 秋蟲夜來囂 風(fēng)拂樹影兒搖 白綢水上飄呀飄 雞鴨們?nèi)肓顺?月匿星稀夜難消 遠方的人兒你最好
    無題詩閱讀 235評論 0 0

友情鏈接更多精彩內(nèi)容