美文网首页
Javascript的call,apply,bind

Javascript的call,apply,bind

作者: 吴博 | 来源:发表于2017-05-26 21:25 被阅读0次

    总结

    • 三者都是用来改变函数的this对象的指向的
    • 三者的第1个参数都是this要指向的对象,也就是想指定的上下文
    • 三者都可以利用后续参数传参
    • bind是返回函数,以便于稍后调用;apply,call则是立即调用。
    • call的调用方式:对象.call(this,arg1,arg2);
    • apply的调用方式:对象.apply(this,[arg1,arg2,arg3]);
    • func.bind(this); 多次bind无效,只会根据第一次bind的上下文(this)来执行函数

    代码示例:

    var a = {
        x : 'a',
        get:function(){
         var args = Array.prototype.slice.call(arguments);
         args.unshift(this.x);
         console.log.apply(console,args);
        }
    }
    var b = {
        x : 'b'
    };
    a.get(); // a
    a.get.call(b); // b
    a.get.apply(b,[1,2,3]); // b 1 2 3
    a.get.call(b,1,2,3); // b 1 2 3
    a.get.bind(b,1,2,3)(); // b 1 2 3
    

    相关文章

      网友评论

          本文标题:Javascript的call,apply,bind

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