typescript - 如何从另一个函数访问私有函数
问题描述
我在尝试访问另一个函数中的私有函数时收到错误消息
class GameController {
public async cardShuffle (req: Request, res: Response): Promise<void> {
other code here...
const treatment = this.cardTreatment(shuffledCards)
console.log(treatment)
})
}
private cardTreatment (cards: Array<String | Number>): Array<String | Number> {
return cards
}
}
export default new GameController()
错误:
(节点:2645)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“cardTreatment”
解决方案
问题不在于该函数是私有的,而是在您调用它的上下文中this
。undefined
例如,您可能已经完成了const shuffle = controller.cardShuffle; shuffle()
.
见下文:
class Example {
foo() {
return this.bar();
}
bar() {
return 'It works!';
}
}
const test = new Example();
console.log(test.foo())
const foo = test.foo;
try {
console.log(foo())
} catch(e) {
console.log('Doesnt work');
}
console.log(foo.call(test))
推荐阅读
- sql - SQL 查询没有得到相应的列
- ruby - 如何在 Ruby 中最好地抽象类变量
- puppet - 使用查找命令在 puppet 中的多个 hiera 文件中查找相同的键
- python-3.x - skfuzzy C-Mean 中的数据与质心协议
- html - 增加按键角 4 的计数器并减少退格键
- python-3.x - 如何在nx图中获取度数为0的节点?
- android - imageview的android工具提示显示“捏缩放”
- sql-server - 我可以在 SQL Server 中使用索引视图来仅获取非重复记录吗
- java - 使用 Stream 的 Java 初始化对象和设置属性
- node.js - 对象引用/mongoose-mongodb