拥有这2个代码片段。它们之间有什么区别,在什么情况下你更喜欢彼此?
export default class A {
static methodA() {
console.log('Method A');
}
}
具有以下用途:
import A from 'a';
function test() {
A.methodA()
}
VS第二个片段:
class A {
methodA() {
console.log('Method A');
}
}
export default new A();
具有以下用途:
import A from 'a';//I know that semantically I should have import a - but for the sake of this question I wrote import A.
function test() {
A.methodA();
}
答案 0 :(得分:1)
真的不多。即使class
是一个对象,所以在一种情况下,你有一个具有属性methodA
的对象是一个函数,而在另一种情况下,你有一个具有属性{{1}的对象这是一个函数。
唯一的区别是,当methodA
是一个类时你可以new A
,但是当它已经是一个实例时你就不能这样做。
答案 1 :(得分:1)
第二种情况是所谓的单例模式,其中您定义了一个只有一个实例的类。您更喜欢哪一个主要取决于您的使用案例和个人品味。如果您对更多细节感兴趣,我建议您阅读单身人士和一般的设计模式。