事件监听函数中的this

特别简单的一个html结构

<div class="test">
			
</div>

测试需求为点击显示this指向

  1. 直接在标签中调用
<div class="test1" onclick="t();">
			
</div>

function t(){
			console.log(this);
}

浏览器控制台结果 在这种情况下,相当于告诉浏览器去找到t函数,然后执行它,t函数在全局对象空间中,所以this指向window 2. 普通匿名函数

var test = document.querySelector(.test);
test.addEventListener(click,function(event){
	console.log(this);
});

浏览器控制台结果 3. 箭头函数

var test = document.querySelector(.test);
test.addEventListener(click,()=>{
		console.log(this);
});

浏览器控制台结果 分析 普通的匿名函数中this指向触发事件的元素 箭头函数由于不会创建自己的this,它只能从作用域链的上层继承this,所以this指向全局对象window

参考资料:

经验分享 程序员 微信小程序 职场和发展