this是什么?
- this是JavaScript语言的一个关键字。
- 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。
- 函数的不同使用场合,this有不同的值。
- 总的来说,this就是函数运行时所在的环境对象。
关于this指向的总结:
- 在浏览器里,在全局范围内this指向window对象;
- 在函数中,this永远指向最后调用他的那个对象;
- 构造函数中,this指向new出来的那个新的对象;
- call、apply、bind中的this被强行绑定在指定的那个对象上;
- 箭头函数中this比较特殊,箭头函数this为父作用域的this,不是调用时的this,要知道前四种方式都是调用时确定,也就是动态的,而箭头函数的this指向是静态的,声明的时候就确定了下来;
- apply、call、bind都是js给函数内置的一些API,调用他们可以为函数指定this的执行,同时也可以传参。
作为一般函数执行时,this指代全局对象window
function fn() {
console.log(this) // Window
}
fn();
console.log(fn)
在函数中,this永远指向最后调用他的那个对象