JavaScript--自定义bind函数

bind函数介绍bind函数实际上是柯理化思想。大函数执行返回一个小函数,执行大函数,把需要准备的内容准备好、当前大函数的执行上下文因为小函数的引用关系就不能销毁了,形成了闭包。这样事先准备好的内容就能保存下来,当执行小函数时就会用到大函数里保存的信息。这相当于大函数预先把信息存储起来,以后用的时候直接在小函数中调用即可。实现bind函数最外围是一个立即执行函数,在立即执行函数中完成使用...
摘要由CSDN通过智能技术生成

bind函数介绍

bind函数实际上是柯理化思想。大函数执行返回一个小函数,执行大函数,把需要准备的内容准备好、当前大函数的执行上下文因为小函数的引用关系就不能销毁了,形成了闭包。这样事先准备好的内容就能保存下来,当执行小函数时就会用到大函数里保存的信息。
这相当于大函数预先把信息存储起来,以后用的时候直接在小函数中调用即可。

实现bind函数

  1. 最外围是一个立即执行函数,在立即执行函数中完成使用自定义bind替换Function.prototype.bind。直接上代码喽,讲解写在注释中。
     // 如果让我们自己实现一个bind,该怎么写呢
    ~function anonymous(proto){
      /**
      ** context
      */
      function bind(context) {
        // bind 中的 this =>(指向)需要最终执行的函数 
        //js中 null == undefined, 不传参也是undefined。所以null、undefined、null都可以用是否==undefined 判断
        if (context == undefined) { // 给context一个默认值
          context = window; 
        }
        // 拿其余的参数: arguments 是类数组,我们借用数组的方法来处理
        var args = [].slice.call(arguments, 1); // 第一个参数是context.相当于 Array.prototype.slice.call(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值