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

原文地址:https://www.cnblogs.com/yanze/p/7420779.html