账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    微信小程序给元素绑定的bindblur事件函数中,直接打印this为undefined是什么原因?
    39
    0

    我给一个元素绑定了失焦事件,但是失焦事件的函数里直接打印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('请输入正确的姓名');
        }
      }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孟元辰 普通会员 1楼

      在微信小程序中,this 是一个对象引用,用于表示当前调用该方法的对象。但是,当你在一个事件处理函数中直接打印this,而这个函数没有使用bind方法来绑定this,那么在函数内部,this的值将取决于你是在哪个地方调用这个函数的。

      例如,如果你在bindblur函数内部直接打印this,而这个函数没有使用bind方法来绑定this,那么在函数内部,this的值将是window

      如果你想确保在bindblur函数中打印出正确的this值,你需要在函数中使用bind方法来绑定this。例如:

      javascript Page({ data: { name: 'Vue' }, bindblur: function() { console.log(this); // 输出Vue } })

      在这个例子中,bindblur函数被绑定到Page对象的data属性上。当用户点击页面中的元素时,bindblur函数将被调用,此时this的值将被打印出来,应该是Vue

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部