我正在将我的旧JavaScript代码之一转换为ECMA6。在将回调中的“ this”传递给“ addEventListener”方法时遇到问题。
这是我的HTML
<p><span id="temperature"></span><span id="degname">C</span></p>
在我的Javascript中,我将此span元素设为可点击的元素。在我的旧代码中,“ this”很好地在回调中传递,它指向“ span”元素,但是在ECMA6代码中,“ This”指向“ window”对象。
我研究了这个问题。有一个对ECMA6中的回调使用bind函数的选项,以传递“ this”指针,但我想使用匿名回调。
任何人都可以告诉我如何将父对象(此处为“ span”元素)“ this”指针传递给匿名回调吗?
这是我的旧代码,
document.getElementById("degname").addEventListener("click",function(){
//alert("hello fahrenhite");
console.log("the value of this = "+this); **//"this" is here the span element**
var name = this.innerHTML;
console.log("name is : "+name); //name is giving right value
});
这是ECMA6:
document.getElementById("degname").addEventListener("click",() => {
console.log("The value of this = "+this); **//"this" is here is windows object**
let name = this.innerHTML; **//name is here undefined**
});