美文网首页
call、apply、bind的区别

call、apply、bind的区别

作者: gaoqizhuhui | 来源:发表于2017-07-25 22:42 被阅读0次
var obj={name:"张三“};
function fn(num1,num2){
      consloe.log(num1+num2);
      console.log(this);
}

相同处:

1、call与apply:
apply和call方法的作用是一模一样的,都是用来改变方法的this关键字并把方法执行;而且在严格模式下和非严格模式下对于第一个参数是null / undefined这种情况的规律也是一样的
2、bind方法:
bind方法在IE6-8下不兼容,和call / apply类似都使用来改变this关键字的

不同处:

1、call与apply唯一区别
fn.call(obj,100,200); fn.apply(obj,[100,200]);
call在给fn传递参数的时候,是一个个的传递值的,而apply不是一个个传,而是把要给fn传递的参数统一的放在一个数组中进行操作,但是也相当于一个个的给fn的形参赋值

2、call与bind区别:

fn.call(obj,100,200);   //改变this和执行fn函数一起都完成了
 fn.bind(obj,100,200);    // 只是改变了fn中的this为obj,并且给fn传递了两个参数值100,200,但是此时并没有把fn这个函数执行

如何让bind执行:
var tempFn=fn.bind(obj,100,200); tempFn();
(bind预处理:事先把fn的this改变为想要的结果,并且把对应的参数值也准备好,以后用到了,直接执行即可)

相关文章

  • 理解JS中的 call, apply, bind方法

    call, apply, bind 方法的目的和区别 我们常说,call(), apply(),bind()方法的...

  • this_原型链_继承

    this相关问题 apply、call 、bind的作用以及区别 call、apply和bind方法的用法以及区别...

  • this&原型链&继承

    this 1. apply、call 、bind有什么作用,什么区别? apply、call 、bind 都是用来...

  • 关于 this_原型链_继承 相关问题总结

    关于this 1- apply、call 、bind的作用和区别 apply、call 、bind都有改变thi...

  • this_原型链_继承

    this 相关 1. apply、call 、bind有什么作用,什么区别 apply、call、bind可以改变...

  • this_原型链_继承

    问题1: apply、call 、bind有什么作用,什么区别? apply和call call apply,调用...

  • this 原型链 继承

    this 相关问题 1.apply、call 、bind有什么作用,什么区别 apply、call 、bind这三...

  • call(),apply()和bind()

    call、apply和bind函数存在的区别:bind返回对应函数, 便于稍后调用; apply, call则是立...

  • this 相关问题

    问题1: apply、call 、bind有什么作用,什么区别 apply call bind 问题2: 以下代码...

  • js继承

    问题1: apply、call 、bind有什么作用,什么区别 apply/call/bind 问题2: 以下代码...

网友评论

      本文标题:call、apply、bind的区别

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