Javascript 类与对象,优缺点?

Win*_*ade 8 javascript memory performance class

在我最近的 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};
Run Code Online (Sandbox Code Playgroud)

我猜后一种方法在某些方面会更有效(不调用类的函数),但是值得吗?

决定我想知道使用类与使用常规对象的优缺点。例如,类是否占用了更多的内存?

hug*_*omg 10

在性能方面,当您添加方法时就会有所不同。如果您使用对象字面量,每个对象都需要为每个方法提供一个字段:

obj1--> { x: 10,
          f1: method1,
          f2: method2 }

obj2--> { x: 17,
          f1: method1,
          f2: method2 }
Run Code Online (Sandbox Code Playgroud)

使用类,您可以在共享原型背后共享公共属性:

obj1--> { x:10,
          __proto__: --------> { f1: method1,
         }              /---->   f2: method2 }
                        |
obj2--> { x:17,         |
          __proto__: ---/
        }
Run Code Online (Sandbox Code Playgroud)

也就是说,只有当您实例化大量对象并且这些对象具有许多方法并且其中许多方法是闭包时,性能差异才会重要。如果我是你,我会更加强调代码风格问题:例如,对于对象字面量方法,您可以使用闭包来模拟私有变量,而如果这些方法位于共享的公共原型中,那么您的所有实例变量都需要是公共的.