javascript - Nodejs:从实例变量中引用构造函数变量
问题描述
我在 Javascript(节点)中有一点 OOP 问题。
我创建了一个名为 Bubble 的类。这个类有一个接受令牌的构造函数。现在,问题来了:
class Bubble {
constructor(token) {
if (!token) throw new Error('No token');
this.token = token;
}
first = new First(this.token)
second = new Second(this.token)
third = new Third(this.token)
如果我执行,则传递new Bubble("someToken").first
一个空令牌。但是,如果我将first、second和third更改为 functions 并且我 perform new Bubble("someToken").first()
,则确切的令牌将成功传递。我想引用first,second和third作为直接变量,而不是函数,即new Bubble("someToken").first
.
我该怎么做?
解决方案
一种选择是将您的类方法实现为getters。这是您的示例中的样子:
class Bubble {
constructor(token) {
if (!token) throw new Error('No token');
this.token = token;
}
get first() {
return new First(this.token);
}
get second() {
return new Second(this.token);
}
get third() {
return new Third(this.token);
}
}
有了这些 getter,访问它们看起来就像调用者的常规属性访问。
const bubble = new Bubble("token");
bubble.first
bubble.second
bubble.third
推荐阅读
- javascript - Firebase 云功能 Deadline 超出嵌套承诺中的错误
- greenplum - 为什么我配置青梅时出现“configure: error: zstd library not found”,但是我下载了zstd
- clang - 如何使用 clang 生成 .map 文件?
- ruby-on-rails - 重复向 Rails 应用程序发出奇怪的未知 POST 请求
- c - 将自纪元以来的本地时间(以秒为单位)转换为 UTC
- arrays - 无法在 Postman 中将数组定义为变量
- powershell - 如何使用powershell查找文件并获取路径?
- python - 当我使用 configure_options 使用 add_file_option 将文件发送到我的节点时,为什么 python 会冻结?
- android - 当cordova构建android --angular时点击javax.net.ssl.SSLHandshakeException
- c# - 这两个来自不同类的 FileStreamResult 有什么区别?