Jquery验证器更改`this` ES6代码

时间:2018-05-17 12:47:36

标签: javascript jquery ecmascript-6 jquery-validate es6-class

我有es6类,包含构造函数和验证方法。

class Popups {
  constructor(selector) {
    this.app = selector;
  }

  validate() {
    $.validator.addMethod('atLeastOneLowercaseLetter', (value, element) => {
        return this.optional(element) || /[a-z]+/.test(value);
        // how to replace `this` ??
      },
      'Must have at least one lowercase letter'
    );
  }
}

我的this指的是我的班级,但我需要使用我的验证表单获取$.validator。我怎么能取代这个?

如果我写$.validator.optional(element) || /[a-z]+/.test(value),我会收到错误$.validator.optional is not a function

1 个答案:

答案 0 :(得分:0)

在这种情况下,请不要使用arrow函数,因为没有自己的this 。请使用普通函数表达式作为回调。