这是我想要实现的功能的一个非常基本的例子。我的问题是,当调用“greet”时,“this”上不存在appconfig,因为它在函数内部。
如何维护对外部“this”的访问并能够调用appconfig?我希望这样做,而不是把外部的“this”赋给像self这样的变量。
class Greeter {
static $inject = ['appConfig'];
constructor(
private appConfig: any
) {
}
greet() {
return getMessage();
function getMessage() {
return this.appConfig.value;
}
}
}
最佳答案
您可以改用箭头函数。它们继承了闭包的上下文。
class Greeter {
static $inject = ['appConfig'];
constructor(
private appConfig: any
) {}
greet() {
let getMessage = () => this.appConfig.value;
return getMessage();
}
}
您可以阅读有关箭头函数here的更多信息。
尽管在这种情况下,我建议您在类中创建另一个私有方法并调用它。
class Greeter {
static $inject = ['appConfig'];
constructor(
private appConfig: any
) {}
greet() {
return this.getMessage();
}
private getMessage() {
return this.appConfig.value;
}
}