我创建了一项服务:
@Injectable()
export class AppService {
constructor(private _convertor: Convertor)
foo() {
a = ["1", "2", "3"]
return a.map(this.blah)
}
blah(s: string): number {
return this_.convertor.parseInt(s)
}
}
然而,它一直说this
没有被定义。我用map
替换了我的for
,效果很好。我也尝试使用_.map
,这给了我相同的结果。
知道如何在地图上指定它应该使用的this
吗?
答案 0 :(得分:1)
当前上下文由于回调函数而丢失,从MDN,您可以通过将第二个arg传递给map函数来保留当前上下文。所以,
@Injectable()
export class AppService {
constructor(private _convertor: Convertor)
foo() {
a = ["1", "2", "3"]
return a.map(this.blah, this)
}
blah(s: string): number {
return this._convertor.parseInt(s)
}
}
也是this._convertor.parseInt(s)
但不是this_.convertor.parseInt(s)
答案 1 :(得分:0)
试试这个。
print/cat/...