美文网首页深入解读JavaScript
续《判断this绑定的4个规则》之优先级

续《判断this绑定的4个规则》之优先级

作者: 悟C | 来源:发表于2018-07-07 13:44 被阅读0次

《判断this绑定的4个规则》中我们介绍了:默认绑定、隐式绑定、显式绑定和new绑定,在面对它们的混合体的时候,我需要了解它们之间的优先级才能准确的知道,当前那条规则生效。

默认绑定毫无疑问是四条规则中最低的级别,所以我们直接看隐式绑定显式绑定之间谁优先级高。

function say() {
  console.log(this.name)
}

var cat_1 = {
  name: '小喵1',
  say: say
}

var cat_2 = {
  name: '小喵2',
  say: say
}

cat_1.say();            // 小喵1
cat_1.say.call(cat_2)  //小喵2

从上面的结果,我们看到显式绑定比隐式绑定优先级要高。

下面我们来看下显示绑定new绑定

function resetName(name) {
  this.name = name;
}

var cat_1 = {}

var cat = resetName.bind(cat_1);
cat('小喵1');
console.log(cat_1.name); //小喵1

var newCat = new cat('小喵2');
// 发现并没有改变
console.log(cat_1.name)   //小喵1
// 但是
console.log(newCat.name) //小喵2 

这样看起来显式绑定似乎比new绑定优先级更高,无法使用new来控制this绑定。但我们发现new cat('小喵2'),是指向newCat这个新对象,这也符合new操作符的作用。

总结

结合判断this绑定的4个规则和了解它们之间的优先级,我们能更安全的使用this。


参考文献

《你不知道的javaScript》上卷

相关文章

  • this对象

    绑定规则: 默认绑定 隐式绑定 显示绑定 new绑定 判断this 现在我们可以根据优先级来判断函数在某个调用位置...

  • 续《判断this绑定的4个规则》之优先级

    在《判断this绑定的4个规则》中我们介绍了:默认绑定、隐式绑定、显式绑定和new绑定,在面对它们的混合体的时候,...

  • JS this机制

    目录 this 是什么 this 的四种绑定规则 绑定规则的优先级 绑定例外 扩展:箭头函数 this 是什么 理...

  • js中的this详细介绍

    目录this 是什么this 的四种绑定规则绑定规则的优先级绑定例外扩展:箭头函数this 是什么理解this之前...

  • RN中的this机制

    一 :四种绑定规则 优先级由高到低顺序1:new 绑定 2:显示绑定通过call apply bind实现 3:隐...

  • 判断this

    根据优先级来判断this绑定的哪个对象1.函数是否在new中调用(new 绑定)?如果是的话this绑定的是新创建...

  • this绑定规则优先级

    现在了解了函数调用中this绑定的四条规则,需要做的是找到函数的调用位置并判断应用了哪条规则。如果调用位置应用多条...

  • 判断this

    按照优先级的有先后顺序判断this的指向:1.函数是否在new中调用(new绑定)?如果是的话this绑定的是新创...

  • 点点滴滴的前端面试题

    (一) 如何正确的判断 this? 箭头函数的 this 是什么?* this 的绑定规则有四种:默认绑定,隐式绑...

  • 9.22嵌入式知识点总结

    1.GPIO复用绑定外部硬件 2.EXTI绑定给外部中断线 3.NVIC中断:配置优先级组,初始化 4.先判断中断...

网友评论

    本文标题:续《判断this绑定的4个规则》之优先级

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