在 ES6 中,我可以像下面这样创建静态方法。但是我需要定义一个静态构造函数但没有成功。我需要在加载类时只运行一次的东西。我有什么办法可以实现这样的事情吗?
class Commander{
static onData(){
console.log("blabla");
}
}
原文由 Barış Velioğlu 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 ES6 中,我可以像下面这样创建静态方法。但是我需要定义一个静态构造函数但没有成功。我需要在加载类时只运行一次的东西。我有什么办法可以实现这样的事情吗?
class Commander{
static onData(){
console.log("blabla");
}
}
原文由 Barış Velioğlu 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
在类主体中包含类设置代码似乎更整洁,因此“类表达式”是独立的。 ES6 在类主体中接受语法
static constructor() {/* do stuff */}
但从不运行它。也许是为了将来的语言扩展?无论如何,这是实现预期结果的一种方法。诀窍是使用立即执行的函数表达式来初始化静态属性,该函数表达式会执行您的类设置:在“静态构造函数”中,您可以使用
MyClass.prop = value
向类对象添加属性,或者如果您希望引用MyClass
asthis
,函数表达式到 箭头函数表达式。#
使staticConstructorDummyResult
私有 - 现在应该可以在所有主要浏览器中使用(感谢@Donald Duck)。