美文网首页
bind方法的实现

bind方法的实现

作者: stillpeng | 来源:发表于2019-09-30 09:20 被阅读0次

    一、bind的作用

        |--案例:

    报错:非法的调用

        |--错误分析:write方法是document对象下的,将write方法赋值给变量dw,dw将成为window下的一个方法,
        调用dw相当于window.dw,此时dw里的this已经指向了window而不是document。所以报错。
        |--如何解决:通过bind来改变this的指向(指向document)

    通过bind改变this指向

    二、bind的使用之绑定函数

        |--最基本的用法:创建一个函数(返回值:新函数),使新函数永久绑定this为指定对象(第一个参数),如果不做bind处理,函数会丢失原来的对象。
        |--案例:

    bind使新函数this绑定为obj

    三、bind的使用之预定义参数

        |--可以为新函数预定义参数,调用的时候传入其他参数即可。
        |--案例:

    调用newList默认参数37

    四、bind的使用之和setTimeout一起使用

        |--示例:

    setTimeout里的this指向window

        |--解决办法:

    绑定定时器内部this为Person

    五、bind和构造函数一起使用

        |--构造函数1.bind(null/{})返回一个新的构造函数,两个构造函数共用一个原型。
        |--示例:

    两个构造函数共用一个原型

    六、使用bind将类数组转为数组

        |--示例:使用call和bind

    call和bind

    七、自己实现bind函数

        |--原因:一些低版本浏览器不支持bind方法,这时就要自己实现bind方法。
        |--实现:

    在Function的原型添加自定义bind

    八、带参数的bind实现

        |--示例:

    带参数的bind实现

    相关文章

      网友评论

          本文标题:bind方法的实现

          本文链接:https://www.haomeiwen.com/subject/ubttpctx.html