绑定的bindblur事件中,直接打印this为undefined是什么原因?

发布于 7 年前作者 qbai16872 次浏览最后编辑 7 年前来自 ask

我给一个元素绑定了失焦事件,但是失焦事件的函数里直接打印this却是undefined,代码如下:

<input id='peopleName' bindblur='VerifyName' type='text' placeholder='请输入姓名' placeholder-class='placeholder'></input>
 
VerifyName:e=>{
    console.log(this); //控制台显示为undefined
    const testName = /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,20}$/;
    if (testName.test(e.detail.value)) {
      console.log('验证通过');
    } else {
      console.log('请输入正确的姓名');
    }
  }

1 回复
hexia
hexia1 楼5 年前

解决了,原来绑定的事件函数不能写成箭头函数,否则this会undefind