javascript - JavaScript 类“this”未定义
问题描述
我是 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 => {
// ...
}))
}
}
解决方案
this
关键字是指类的一个实例。因此,您需要一个类的实例才能调用该方法。一个例外是当一个方法是static
.
假设您有这样的课程:
class TestClass {
doSomething() {
console.log("Did something");
}
}
为了调用该doSomething
方法,您首先需要它的一个实例。IE
var instanceOfTestClass = new TestClass();
instanceOfTestClass.doSomething(); // OK
如果你不想创建实例,你需要的是一个静态方法
class TestClass {
static doSomething() {
console.log("Did something");
}
}
那么这是允许的:
TestClass.doSomething(); // OK
推荐阅读
- sql - SQL Server:是否有必要出于安全问题禁用 SA 用户?
- karate - 无法计算 json 响应的大小
- c# - 使用 JSON 序列化和反序列化类构造函数值
- laravel-5 - 调度命令不在服务器上运行
- nginx - `127.0.0.1' 不是有效域
- reactjs - 如果其他条件在 reactjs 中不起作用
- powershell - Visual Studio 2017 无人值守升级
- mysql - Mysql数据库中(PhpMyAdmin)插入重复外键问题
- php - 如何在 cpanel 上运行工匠命令
- eclipse-plugin - eclipse插件:如何使用actionID调用actionSet