美文网首页
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