this指向的形式
- 如果是一般函数,this指向全局对象window
- 在严格模式(“use strict”)下的this指向为undefined
- 对象调用的函数指向,this指向该对象
- 构造函数里的this指向创建出来的实例
- 箭头函数(()=>{})里的this指向当前调用的环境(执行上下文)
- 定时器的this指向window
- call、apply、bind可以更改this指向
一般函数
function fn(){
console.log(this)
}
fn()
严格模式下的this
"use strict"
function fn(){
console.log(this)
}
fn()
有调用者的
var obj = {
fn:function(){
console.log(this)
}
}
obj.fn()
构造函数
function Fn(){
this.fn = function(){
console.log(this)
}
}
var a = new Fn();
a.fn()
箭头函数
简单总结
一般函数this指向:说调用指谁,没有就是window
箭头函数this指向:函数调用的地方的this指向
setInterval,setTimeout:一般指向window,不管放在哪里(箭头函数除外)