无法将此指针附加到ECMA6中的事件侦听器

时间:2019-03-23 18:55:36

标签: javascript ecmascript-6

我正在将我的旧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**

   });

0 个答案:

没有答案