在一个实例中绑定它
Bind this in an instance
我有一个简单的 class 处理获取响应的可读流:
class ProgressIndicator {
constructor(res) {
this.res = res;
this.contentLength = parseInt(res.headers.get('content-length', 10));
this.loaded = 0;
return new Response(
new ReadableStream({
start(controller) {
console.log(this);
this.reader = this.res.body.getReader();
this.readStream(controller);
}
})
);
}
显然,如果我在启动函数中记录它,我就会得到自己的函数。
知道如何将 ProgressIndicator 对象绑定到启动函数吗?
在 ProgressIndicator class 中创建属性,它将引用 class 范围。
class ProgressIndicator {
var selfScope = this;
constructor(res) {
this.res = res;
this.contentLength = parseInt(res.headers.get('content-length', 10));
this.loaded = 0;
return new Response(
new ReadableStream({
start(controller) {
console.log(selfScope);
this.reader = this.res.body.getReader();
this.readStream(controller);
}
})
);
}
我有一个简单的 class 处理获取响应的可读流:
class ProgressIndicator {
constructor(res) {
this.res = res;
this.contentLength = parseInt(res.headers.get('content-length', 10));
this.loaded = 0;
return new Response(
new ReadableStream({
start(controller) {
console.log(this);
this.reader = this.res.body.getReader();
this.readStream(controller);
}
})
);
}
显然,如果我在启动函数中记录它,我就会得到自己的函数。
知道如何将 ProgressIndicator 对象绑定到启动函数吗?
在 ProgressIndicator class 中创建属性,它将引用 class 范围。
class ProgressIndicator {
var selfScope = this;
constructor(res) {
this.res = res;
this.contentLength = parseInt(res.headers.get('content-length', 10));
this.loaded = 0;
return new Response(
new ReadableStream({
start(controller) {
console.log(selfScope);
this.reader = this.res.body.getReader();
this.readStream(controller);
}
})
);
}