美文网首页
call bind apply

call bind apply

作者: 索伯列夫 | 来源:发表于2018-10-17 10:21 被阅读0次

    一、call(),apply()
    call()方法调用一个函数,其具有一个指定的this和一个参数列表。
    注意:该方法的作用和apply()方法类似,只有一个区别,就是call()方法接受的是若干个参数的列表,而apply()接受的是一个包含多个参数的数组。
    二、bind()
    bind()方法创建一个新的函数, 当这个新函数被调用时其this置为提供的值,其参数列表前几项置为创建时指定的参数序列。
    有这么几个特征:

    • 指定this
    • 创建新的函数(不立即执行)
      而call(), apply()是立即执行。
      例:
    var x = 10
    var module = {
        x: 20,
        getX: function(){ return this.x}
    }
    module.getX()  //20
    
    var retrieveX = module.getX
    retrieveX.call()  //10,默认为global
    retrieveX.call(module)  //20
    
    var boundGetX = retrieveX.bind(module)
    boundGetX()  //20
    
    retrieveX.bind(module)()  //20
    

    \

    相关文章

      网友评论

          本文标题:call bind apply

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