美文网首页
关于this

关于this

作者: 温梦丽 | 来源:发表于2021-01-08 09:59 被阅读0次

    this使用一种更优雅的方式来隐式“传递”一个对象的引用

    1.this的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。
    2.函数在执行过程中如何绑定this
    a.默认绑定:
    不被任何函数引用进行调用(全局对象)=》严格模式this会绑定到undefined
    b.隐式绑定:
    调用位置是否有上下文对象(缺点:隐式丢失)
    c.显式绑定:

    foo.call(this,2,3);//此处‘this’指显式绑定的函数对象
    
    • call() apply()
      它们第一个参数是一个对象,是给this准备的,接着在调用函数时将其绑定到this,因为可以直接指定this的绑定对象,因此称为显式绑定

    如果把undefined或者null作为this的绑定对象传入call、apply或者bind,这些值在调用时会被忽略,实际应用的是默认绑定规则

    优先级
    1.new调用?绑定到新创建的对象
    2.由call,apply(或者bind)调用?绑定到指定的对象
    3.由上下文对象调用?绑定到上下文对象
    4.默认:在严格模式下绑定到undefined,否则绑定到全局对象

    • ES6中的箭头函数并不使用以上四条标准的绑定规则,而是根据当前的词法作用域来决定‘this’。(箭头函数会继承外层函数的this绑定)

    总结来自:你不知道的Javascript(上卷)

    相关文章

      网友评论

          本文标题:关于this

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