Javascript 在一个类中同时使用静态和非静态方法是否被视为不好的做法?

Javascript 在一个类中同时使用静态和非静态方法是否被视为不好的做法?,javascript,static-methods,Javascript,Static Methods,我的意思是: 在一个javascript类中,我有一些方法不使用>this 我应该把transform\u vars放在课堂之外吗 不。transform\u vars似乎与您的templaterender类密切相关。因此,除非您发现自己需要在其他任何地方转换变量(以便可以证明额外的实用程序对象是正确的),否则您应该将其放在类结构中 它们仅由实例“public”方法调用 您仍然可以使这些方法对您的类是私有的,即将所有内容都放在IEFE中。你可能不想暴露它们 不使用此的方法 是的,它们是静态的。虽

我的意思是: 在一个javascript类中,我有一些方法不使用>this 我应该把
transform\u vars
放在课堂之外吗

不。
transform\u vars
似乎与您的
templaterender
类密切相关。因此,除非您发现自己需要在其他任何地方转换变量(以便可以证明额外的实用程序对象是正确的),否则您应该将其放在类结构中

它们仅由实例“public”方法调用

您仍然可以使这些方法对您的类是私有的,即将所有内容都放在IEFE中。你可能不想暴露它们

不使用此
的方法

是的,它们是静态的。虽然将它们放在类中的确切位置并不重要,但将它们放在构造函数对象上是javascript的标准做法。这样,就可以在没有构造任何实例的情况下调用它们(如果将它们放在
.prototype
上,就可以访问它们)

所以你可以这么做

function TemplateRenderer(vars) {
    var a = TemplateRenderer.transform_vars(vars);
    …
}
TemplateRenderer.transform_vars = function(vars) {
    … // doesn't use any instance vars
};
我应该把
transform\u vars
放在课堂之外吗

不。
transform\u vars
似乎与您的
templaterender
类密切相关。因此,除非您发现自己需要在其他任何地方转换变量(以便可以证明额外的实用程序对象是正确的),否则您应该将其放在类结构中

它们仅由实例“public”方法调用

您仍然可以使这些方法对您的类是私有的,即将所有内容都放在IEFE中。你可能不想暴露它们

不使用此
的方法

是的,它们是静态的。虽然将它们放在类中的确切位置并不重要,但将它们放在构造函数对象上是javascript的标准做法。这样,就可以在没有构造任何实例的情况下调用它们(如果将它们放在
.prototype
上,就可以访问它们)

所以你可以这么做

function TemplateRenderer(vars) {
    var a = TemplateRenderer.transform_vars(vars);
    …
}
TemplateRenderer.transform_vars = function(vars) {
    … // doesn't use any instance vars
};
我应该把
transform\u vars
放在课堂之外吗

不。
transform\u vars
似乎与您的
templaterender
类密切相关。因此,除非您发现自己需要在其他任何地方转换变量(以便可以证明额外的实用程序对象是正确的),否则您应该将其放在类结构中

它们仅由实例“public”方法调用

您仍然可以使这些方法对您的类是私有的,即将所有内容都放在IEFE中。你可能不想暴露它们

不使用此
的方法

是的,它们是静态的。虽然将它们放在类中的确切位置并不重要,但将它们放在构造函数对象上是javascript的标准做法。这样,就可以在没有构造任何实例的情况下调用它们(如果将它们放在
.prototype
上,就可以访问它们)

所以你可以这么做

function TemplateRenderer(vars) {
    var a = TemplateRenderer.transform_vars(vars);
    …
}
TemplateRenderer.transform_vars = function(vars) {
    … // doesn't use any instance vars
};
我应该把
transform\u vars
放在课堂之外吗

不。
transform\u vars
似乎与您的
templaterender
类密切相关。因此,除非您发现自己需要在其他任何地方转换变量(以便可以证明额外的实用程序对象是正确的),否则您应该将其放在类结构中

它们仅由实例“public”方法调用

您仍然可以使这些方法对您的类是私有的,即将所有内容都放在IEFE中。你可能不想暴露它们

不使用此
的方法

是的,它们是静态的。虽然将它们放在类中的确切位置并不重要,但将它们放在构造函数对象上是javascript的标准做法。这样,就可以在没有构造任何实例的情况下调用它们(如果将它们放在
.prototype
上,就可以访问它们)

所以你可以这么做

function TemplateRenderer(vars) {
    var a = TemplateRenderer.transform_vars(vars);
    …
}
TemplateRenderer.transform_vars = function(vars) {
    … // doesn't use any instance vars
};

有很多方法可以用javascript编写完全相同的东西,通常,这只是偏好的问题。你能给我们一个实际的例子给你一个正确的答案吗?@briosheje done,希望它能帮助我们用javascript写同样的东西有很多方法,通常,这只是偏好的问题。你能给我们一个实际的例子给你一个正确的答案吗?@briosheje done,希望它能帮助我们用javascript写同样的东西有很多方法,通常,这只是偏好的问题。你能给我们一个实际的例子给你一个正确的答案吗?@briosheje done,希望它能帮助我们用javascript写同样的东西有很多方法,通常,这只是偏好的问题。你能为我们提供一个实际的例子,让你正确回答你的问题吗?@briosheje done,希望能有所帮助