手写简单.bind()实现

手写一个实现柯里化的.bind()

柯里化:《函数柯里化小结》
柯里化:前端开发者进阶之函数柯里化Currying
bind():Javascript中bind()方法的使用与实现

函数柯里化(个人理解):一个函数只接收单个参数,但是函数层层嵌套并return,可实现预设参数(参数复用)、提前返回(理解不是很透彻)、延迟执行(ES5的bind())。

// 实现一个函数柯里化的原生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);
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 Haskell和scala都支持函数的柯里化,JavaScript函数的柯里化还与JavaScript的...
    dreamapple阅读 2,557评论 0 24
  • 简介 柯里化从何而来 柯里化, 即 Currying 的音译。 Currying 是编译原理层面实现多参函数的一个...
    流动码文阅读 3,153评论 0 2
  • 人生很多第一次 第一次做的事情都是特别激动的 这不,我就第一次来染发 可以说至今为止,拉过两次头发,烫过一次头发,...
    花儿的博文阅读 247评论 0 0
  • 海关总署最新发布的数据显示,今年前5个月,我国货物贸易进出口总值10.76万亿元,比去年同期增长19.8%。其中,...
    谭浩俊阅读 230评论 0 0
  • 秋虫夜来嚣 风拂树影儿摇 白绸水上飘呀飘 鸡鸭们入了巢 月匿星稀夜难消 远方的人儿你最好
    无题诗阅读 213评论 0 0