Javascript &引用;“静态法”;vs";“对象属性方法”;
这两者在性能方面有什么区别: 第1版:Javascript &引用;“静态法”;vs";“对象属性方法”;,javascript,ecmascript-6,Javascript,Ecmascript 6,这两者在性能方面有什么区别: 第1版: export default class User { static getList(data) { ... } static getItem(data) { ... } } export default { getList(data) { ... }, getItem(data) { } ... } 这是: 第2版: export default class User { stat
export default class User {
static getList(data) {
...
}
static getItem(data) {
...
}
}
export default {
getList(data) {
...
},
getItem(data) {
}
...
}
这是:
第2版:
export default class User {
static getList(data) {
...
}
static getItem(data) {
...
}
}
export default {
getList(data) {
...
},
getItem(data) {
}
...
}
两者都被直接称为:
import User from "./User";
User.getList(data); // by static method (version 1)
User.getList(data); // by object property method (version 2)
那么区别在哪里呢
- 静态方法(“版本1”)是否只创建一次,而另一个对象(“版本2”)是否在每次调用时都被克隆(?)
- 类是否有对象没有的开销
- 其他事情
var firstExample = Object.assign(function() {}, {
getList() {},
getItem() {},
});
var secondExample = Object.assign({}, {
getList() {},
getItem() {},
});
你应该使用清楚代码意图的东西。如果你永远不会实际实例化User
,那么你就不应该使用类来实现这一点
静态方法(“版本1”)是否只创建一次,而另一个对象(“版本2”)是否在每次调用时都被克隆(?) 否。在这两种情况下,方法只创建一次 类是否有对象没有的开销
可能吧。创建“类”比创建对象需要更多的步骤。但是,这不会对应用程序产生任何实际性能。在这些方面没有区别。如果你制作一个类只是为了把静态的东西放在上面——不要。类用于JavaScript中的实际类型。区别在于v2不是类。考虑到纯静态类是反模式的,这可能是正确的选择。