美文网首页
this 指向

this 指向

作者: 前端小白的摸爬滚打 | 来源:发表于2021-09-23 12:22 被阅读0次

    this 指向

    首先 this 是函数执行上下文中的一部分,所以 this 是在函数执行的时候才确定的

    常见的 this 指向

    • 全局作用域下,this 指向的是 window,严格模式时 this 指向 undefined

    • 定时器中的回调函数中 this 指向 window,原因是因为定时器是 window 上的方法

    • 立即执行函数中 this 指向的是 window

    • 当函数作为对象的方法调用的时候,即函数调用前面有.那么 this 指向的是最近的调用它的对象,没有.的时候就指向 window

    • 构造函数中的 this 指向的是使用 new 创建的新对象

    • 事件处理函数中的 this 指向的是绑定该事件的元素,但是在 IE 中使用 attachEvent 的方式绑定的事件处理函数中的 this 指向的是 window

    • call、apply、bind 会改变 this 的指向,使得 this 指向传入的第一个参数

      • 传入的第一个参数是 null/undefined 时,this 会指向 window
      • 传入的第一个参数是原始类型的时候,会调用原声构造函数将其转换为对应的包装对象
    • 箭头函数中的 this 指向

      • 箭头函数不会绑定自己的 this,它的 this 由定义它所在的地方的外部函数中的 this 决定;所以箭头函数中的 this 在词法分析阶段就已经确定。call、apply、bind 也无法改变箭头函数中的 this 指向,会忽略传入的第一个参数

    箭头函数的特点

    • 箭头函数不绑定自己的 this

    • 箭头函数不能用作构造函数,所以通过 new 来调用的时候会报错

    • 箭头函数没有 arguments(使用 rest 参数代替)、new.target、super

    • 箭头函数无法通过 apply、call、bind 来改变 this 指向,会忽略传入的第一个参数

    • 不能作为 generator 函数使用

    • 箭头函数没有原型对象, 箭头函数的 prototype 属性为 undefined;但是 typeof 一个箭头函数返回的是'function'

    相关文章

      网友评论

          本文标题:this 指向

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