this的值是在运行时确定的
JS中的this究竟代表什么,这是在程序运行时根据上下文环境确定,可以分为以下几种情况。
1. 全局作用域中的this
在全局作用域中,this指向window对象。
console.log(this);//指向window对象
this.x = 5//在全局作用域内创建一个x
//与this.x = 5的等价情况:
//var x = 5;
//x = 5;
在全局作用域中执行var x=5,其实是为window对象创建一个属性x,并令其等于5。
若定义变量时不加var,JS会认为该变量为全局变量,会将其当作window对象的属性。
2. 函数中的this