博客
关于我
手动实现bind函数(js)
阅读量:757 次
发布时间:2019-03-23

本文共 723 字,大约阅读时间需要 2 分钟。

手动实现bind函数

⭐ 实现步骤

  • 首先检查当前调用对象是否为函数
  • 保存第一个参数作为函数的执行上下文
  • 定义一个回调函数,将其作为bind方法的返回值
  • 使用箭头函数定义回调函数,确保this键保留原值
  • 继续接受和处理传入的参数,采用concat方法实现数组合并
  • 调用原函数:通过apply方法将this设定为指定的上下文
  • ⭐关键实现要点

    要实现bind函数需要以下几个关键点:

    1. 通过保存this实现上下文绑定

    2. 确保参数传递功能原封不动

    3. 调用目标函数时,正确设置this值

    ⭐示例实现代码

    Function.prototype.mybind=function(context]{     if(typeof this!=='function'){       throw new Error("this not a function");     }    var arr=Array.from(arguments).slice(1);     var mybound=function(){       arr=arr.concat(...arguments);       return this.apply(context,arr);     };     return mybound;   });

    ⭐实际应用示例

    定义一个对象:

    var obj={
    name:'lijia'
    };

    定义一个函数:

    function foo(age,pp){
    console.log(this.name,age,pp);
    }

    绑定函数并执行:

    foo.mybind(obj,20,30)()

    输出结果应为:

    ['lijia',20,30]

    转载地址:http://cfizk.baihongyu.com/

    你可能感兴趣的文章
    Mysql学习总结(12)——21分钟Mysql入门教程
    查看>>
    Mysql学习总结(13)——使用JDBC处理MySQL大数据
    查看>>
    Mysql学习总结(14)——Mysql主从复制配置
    查看>>
    Mysql学习总结(15)——Mysql错误码大全
    查看>>
    Mysql学习总结(17)——MySQL数据库表设计优化
    查看>>
    Mysql学习总结(18)——Mysql主从架构的复制原理及配置详解
    查看>>
    Mysql学习总结(19)——Mysql无法创建外键的原因
    查看>>
    Mysql学习总结(20)——MySQL数据库优化的最佳实践
    查看>>
    Mysql学习总结(21)——MySQL数据库常见面试题
    查看>>
    Mysql学习总结(22)——Mysql数据库中制作千万级测试表
    查看>>
    Mysql学习总结(23)——MySQL统计函数和分组查询
    查看>>
    Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
    查看>>
    Mysql学习总结(25)——MySQL外连接查询
    查看>>
    Mysql学习总结(26)——MySQL子查询
    查看>>
    Mysql学习总结(27)——Mysql数据库字符串函数
    查看>>
    Mysql学习总结(28)——MySQL建表规范与常见问题
    查看>>
    Mysql学习总结(29)——MySQL中CHAR和VARCHAR
    查看>>
    Mysql学习总结(2)——Mysql超详细Window安装教程
    查看>>
    Mysql学习总结(30)——MySQL 索引详解大全
    查看>>
    Mysql学习总结(31)——MySql使用建议,尽量避免这些问题
    查看>>