本文参考https://www.cnblogs.com/dongcanliang/p/7054176.html
this 指的是你的函数执行时所在的环境(作用域)
全局环境下
console.log(this.document === document) //true
在全局环境下this始终指向全局对象,无论是否严格模式
在浏览器中,this指向window对象
console.log(this === window) //true
this.a = 888
console.log(window.a) //888
函数上下文调用,函数自调用
普通函数内部的this分为两种情况,严格模式和非严格模式
非严格模式下this指向window, 严格模式下this指向undefined
function fn() {
return this
}
console.log(fn()) // window
function fn() {
'use strict'
return this
}
console.log(fn()) //undefined
对象中的this
对象内部的this指向调用这些方法的对象,函数定义的位置不影响this指向,this指向只和调用函数的对象有关
var fn = {
age: 18;
getAge: function() {
return this.age
}
}
console.log(fn.getAge); //18
var age = 19
var obj = fn.getAge;
console.log(obj) //19
虽然fn.getAge和o