1、ES5写法
var p1 = document.getElementById('test1'); p1.addEventListener(
'click',
function(){ this.style.color = "red"; },
false
);
2、ES6写法
var p1 = document.getElementById('test1'); p1.addEventListener(
'click',
() => { this.style.color = "red"; },
false
);
在ES5语法中,this指向其调用着p1;
在ES6语法中,函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
普通函数中,this对象的指向是可变的;
箭头函数中,this对象的指向是固定的。
this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。
由于箭头函数没有自己的this,所以当然也就不能用call()、apply()、bind()这些方法去改变this的指向。
来源:CSDN
作者:永远的烟火
链接:https://blog.csdn.net/sinat_27180563/article/details/77837880