- 没有明确指定指向的一般都指向全局对象
普通函数指向的是全局对象,浏览器下是window - 作为对象的属性,匿名函数或者声明函数,执行时是作为对象属性执行,那么this指向这个对象,如果赋值给全局变量,调用这个全局变量,this指向window,不能使用箭头函数
- 箭头函数没有自己的this,指向定义时外部包裹的函数所在的执行环境,所以不能pply,call,bind来改变this指向
箭头函数不能使用的场景:
• 给对象添加方法,用箭头函数会将内部的this指向全局对象
• 动态访问的时候,不能使用箭头函数 - new构造函数创造实例,里面的this指向实例,访问原型对象同理
- 使用apply,call,bind绑定一个作用域,此时内部的this指向绑定的作用域
- setTimeout,setInterval的回调函数里this指向window
网友评论