我想从method2中调用method1。不知道如何访问它。我收到了:
TypeError:无法调用方法' method1'未定义的
TestSchema.methods = {
method1: () => {
return true;
},
method2: () => {
if(this.method1()){
console.log('It works!');
}
}
};
答案 0 :(得分:3)
请勿使用箭头功能。它使用函数定义的词法范围中的this
上下文。在您使用的strict mode
中未定义。
使用常规功能:
TestSchema.methods = {
method1: function() {
return true;
},
method2: function() {
if(this.method1()){
console.log('It works!');
}
}
};
然后确保将该函数作为对象的方法调用:
TestSchema.methods.method2();
您可以找到有关箭头函数的更多解释,如方法here。
答案 1 :(得分:0)
仅因箭头功能而发生此错误。箭头函数表达式不绑定其自己的this
,arguments
,super
和new.target
。
此外,您不应使用function
关键字来解决此问题。最好的解决方案是使用Shorthand method names
。
TestSchema.methods = {
method1(){
return true;
},
method2(){
if (this.method1()) {
console.log('It works!');
}
}
};
TestSchema.methods.method2();