美文网首页
call,apply,bind 指定this

call,apply,bind 指定this

作者: yuyuuuumi | 来源:发表于2020-05-05 15:22 被阅读0次

一句话介绍call:使用一个指定的this和若干个指定的参数调用某个函数或方法。

在讲解call显示绑定之前,我们先想一下call做了哪些事儿。

  • 将函数设为对象的属性
  • 指定函数的this,并进行传参
  • 执行&删除函数
  • 判定如果没有指定要绑定的this,非严格模式下默认指向全局对象
    可以看到值调用call方法后,会将this绑定到指定对象,所以称为显示绑定
  console.log(this.name);
}

var obj = {
  name: 'Heternally',
}

var obj1 = {
  name: 'Heternally1'
}

var name = 'zl';

foo.call(obj); // Heternally  调用call方法后强行将foo函数的this指向来obj对象上

foo.call(obj).call(obj1); // Heternally  多次调用call方法,以第一次为准

foo.call(obj1).call(obj); // Heternally1

foo.call();// zl 没有传入指定对象,所以this默认指向全局对象

如果call、apple、bind的绑定对象是null或者undefined,那么实际上在调用时这些值都会被忽略,所以使用的是默认绑定规则

相关文章

网友评论

      本文标题:call,apply,bind 指定this

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