收藏
回答

为啥 是否使用箭头函数 导致 控制台输出的this不一样?

回答关注问题邀请回答
收藏

1 个回答

  • 微盟
    微盟
    2021-02-22

    普通函数的this

    1. this总是代表它的直接调用者, 例如 obj.func ,那么func中的this就是obj

    2. 调用的时候,没有任何前缀,则指向window,new的时候,指向new出来的对象。

    3.在默认情况(非严格模式下,未使用 'use strict'),没找到直接调用者,则this指的是 window

    4.在严格模式下,没有直接调用者的函数中的this是 undefined

    5.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对

    箭头函数的this

    默认指向在定义它时,它所处的对象,而不是执行时的对象, 定义它的时候,可能环境是window(即继承父级的this);

    箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target。这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数。

    2021-02-22
    有用
    回复
登录 后发表内容
问题标签