在我最近的 javascript 程序中(主要是为了好玩和概念验证)我有很多不同种类的对象,并且每种类型我都有相当数量的“实例”。所以我想我应该为这些使用类,但是由于它们非常简单,我可以直接构造它们而不是使用类...
我的意思的例子:
//I'm making a "car" object that has the properties model, miles, value and color
//using a class like:
function car (model, miles, value, color) { .... }
//so I'd create a new car by using:
mycar = new car(model, miles, value, color);
//However for an object so simple I could also do:
mycar = {model: model, miles: miles, value: value, color: color};
我猜测后一种方法在某些方面会更有效(不调用类的函数),但它值得吗?
决定我想了解使用类与使用常规对象的优缺点。例如,类会占用更多内存吗?
就性能而言,当您添加方法时就会出现差异。如果你使用对象文字,每个对象都需要为每个方法有一个字段:
obj1--> { x: 10,
f1: method1,
f2: method2 }
obj2--> { x: 17,
f1: method1,
f2: method2 }
通过类,您可以共享共享原型(prototype)背后的公共(public)属性:
obj1--> { x:10,
__proto__: --------> { f1: method1,
} /----> f2: method2 }
|
obj2--> { x:17, |
__proto__: ---/
}
也就是说,只有当您实例化大量对象并且这些对象有许多方法并且其中许多方法是闭包时,性能差异才会变得重要。如果我是你,我会更加强调代码风格问题:例如,使用对象字面量方法,你可以使用闭包来模拟私有(private)变量,而如果这些方法位于共享的公共(public)原型(prototype)中,那么你的所有实例变量都需要是公共(public)的.
Tôi là một lập trình viên xuất sắc, rất giỏi!