美文网首页
封装一个bind

封装一个bind

作者: 广告位招租 | 来源:发表于2019-03-12 18:49 被阅读0次

    首先看一下bind的正常使用

    let obj = {
         name: 'zhangsan'
    }
    let func = function() {
        console.log(this.name)
    }.bind(obj) // 扩展作用域
    func()
    

    页面输出


    image.png

    bind不同于call和apply,他不是立即执行的,只有当函数执行时,才会给该函数扩展作用域

    针对以上特点

    封装一个bind

    Function.prototype._bind = function(more) {
        let _that = this // 保存一下this,this永远指向调用方,这里的this将会指向调用该方法的函数
        return function() {
            _that.call(more)
        }
    }
    let func = function() {
        console.log(this.name)
    }._bind(obj)
    
    func() // zhangsan
    

    相关文章

      网友评论

          本文标题:封装一个bind

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