我是JavaScript的新手,我想知道为什么以下内容在validateThisScenario
中引发错误,以及如何使它在相似的结构中工作。
class TestClass {
// ...
getResponse() {
return this._response
}
validateThisScenario() {
const response = this.getResponse() // TypeError: Cannot read property 'getResponse' of undefined
}
test1() {
return this.test(this.validateThisScenario)
}
test(validation) {
return Promise.resolve()
.then(() => validation())
.catch((err => {
// ...
}))
}
}
答案 0 :(得分:-1)
this
关键字引用该类的实例。因此,您需要一个类的实例才能调用该方法。例外情况是方法为static
。
假设您有一个这样的课程:
class TestClass {
doSomething() {
console.log("Did something");
}
}
要调用doSomething
方法,您首先需要一个实例。即
var instanceOfTestClass = new TestClass();
instanceOfTestClass.doSomething(); // OK
如果您不想创建实例,则需要一个静态方法
class TestClass {
static doSomething() {
console.log("Did something");
}
}
那么这是允许的:
TestClass.doSomething(); // OK