this对象解析
this在js中有着非常广泛的应用,但其所指的对象也常常让人摸不着头脑,简而言之: this指的就是调用函数的对象,最常见的莫过以下几种
1.直接使用函数,则为window对象
function a(){ this.a= 1 console.log(this) } a() //window对象
window对象代表一个浏览器窗口,在js里是全局对象,所有的全局变量和函数都是他的属性,因此调用函数a的自然是window对象
2.作为对象属性被调用,是该对象
var o= { a: 1, b: function(){ this.a= 2 console.log(this.a) console.log(this) } } o.b()
输出结果:
3.作为构造函数的属性被调用,指的是该实例对象
function o() { this.a= 1; this.b= ()=>{ console.log(this) } } var o1= new o() o1.b()
4.apply或call函数调用,根据语法指的是第一个参数
function a(val){ console.log(val) console.log(this) } a.call(1, 2)
输出结果为:
1调用了a函数,并将2作为参数,因此this指向数字1