我正在嘗試將類的屬性系結到該類中的回呼。
快速示例:
// caller
const first = (): void => {
const testClass = new TestClass();
testClass.second(() => {
console.log(this.member) // error TS2532: Object is possibly 'undefined'
}
}
// TestClass
...
member: string = 'test';
second(cb: () => void) {
const self = this;
cb.bind(self)();
}
this 似乎可能未定義。
如何從外部回呼訪問類成員?
uj5u.com熱心網友回復:
在控制臺日志之前添加條件以避免列印未定義的物件。
從你的例子:
// caller
const first = (): void => {
const testClass = new TestClass();
testClass.second(() => {
if (this.member) console.log(this.member)
}
}
// TestClass
...
member: string = 'test';
second(cb: () => void) {
const self = this;
cb.bind(self)();
}
uj5u.com熱心網友回復:
該Arrow Functions是自動系結到當前范圍和父物件,所以你不能用你的回呼的系結呼叫它們。所以這里 javascriptinterpreter試圖找到之前定義了回呼的父級。
// caller
const first = (): void => {
const testClass = new TestClass();
testClass.second(function() {
console.log(this.member)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/355926.html
標籤:javascript 打字稿 打回来 捆绑
