Вы не можете получить доступ к this
, поступая так, потому что это выходит за рамки. Позвольте мне привести пример:
class Foo {
bar = 'biz'
a() {
console.log(this.bar);
return this.b;
}
aWorkaround() {
return this.b.bind(this);
}
b() {
console.log(this.bar);
}
}
const obj = new Foo();
const func = obj.a();
// console shows "biz"
func();
// error: cant access bar of undefined
const funcWorkaround = obj.aWorkaround();
funcWorkaround();
// Console shows "biz"
Проблема в том, что вы делаете свой код очень запутанным, а не повторно используемым (представьте себе, что вы используете тот же валидатор для другого компонента, у которого нет этого свойства).
Это сработает, но если вам нужно это сделать, возможно, вы усложняете работу своего кода.