this
- 1.全局变量中的this
- 2.函数中的this
- 3.对象中的this
-
- 4.回调中的this
- 4-1 普通回调函数中的this指向window和undefined
- 4-2 在回调时,如果使用arguments中的项执行回调.回调函数中this指向回调该函数的上下文环境中arguments的指向
- 4-3 setTimeout,setInterval这种回调函数中this指向window和undefined
- 4-4数组中部分回调函数的使用
- 4-5事件函数对应的回调函数,事件函数中的this指向谁侦听,this就是谁
- 5.箭头函数中this的指向
- 6.call,apply、bind
- 7.面向对象中this指向
- 8.ES5的面向对象
- 9. async和生成器函数中this与普通函数执行是一样的this指向
1.全局变量中的this
console.log(this) // window
严格模式和非严格模式都指向window
2.函数中的this
2-1 严格模式下,this指向undefined,非严格模式下this指向window
function fn() {
console.log(this)
}
fn()
2-2
//2.
function fn1(){
console.log(this) //指向window
}
function fn2() {
fn1() //这叫执行函数
}
fn2()
2-3 如果注释掉, 这里this指向obj ,谁调用a,this 指向谁没有注释的话, 将函数赋值给一个变量,通过变量调用,this指向window和undefined
//3.
var obj={
a:function(){
console.log(this)
}
b:function(){
// var f=this.a
// f()
var f=this.a
f()
this.a()
}
}
2-4 函数中直接调用函数,this执行window和undefined只要没人调用,都指向window
var obj={
a:function(){
console.log(this) //指向obj
function fn(){
console.log(this) //指向window
}
fn()
}
}
3.对象中的this
var