- 在js 中,this的意思为:‘这个,当前’,是一个指针型 变量,它动态指向当前函数的运行环境
- 在不同的场景中调用同一个函数,this 的指向也可能发生变化,但是它永远指向其所在函数的真实调用者;如果没有调用者,就指向全局对象 window
普通函数:关于 this,谁调用就指向谁,没有调用者,就指向全局对象window
箭头函数:箭头函数的this指向于函数作用域所用的对象
一:全局环境下的this指向:this始终指向window,无论是否是严格模式
Console.log(this)://window
Window.console.log(this)//window下的console方法
Console.log()完整的写法是 window.console.log(),window可以省略,window调用了 console.log()方法,所以此时this指向window
二:函数内的this:普通的函数内的this分为两种情况,严格模式下和非严格模式下
严格模式下:
Function test (){ ‘user strict’ console.log(this)}
test(); //undefined
window.test();//window
严格模式下,直接test()调用函数,this指向 undefined,window.test()调用函数指向window,因此,在严格模式下,我们对代码的调用必须严格的写出被调用的函数的对象,不可以省略或者说简写
非严格模式下:
Function test(){ console.log(this)}
test() //window
window.test()//window
非严格模式下,通过test()和window.test()调用函数