2013-12-14 44 views
1

当我遇到对象和类增强时,我阅读了一些在线教程并了解了在对象增强中,我们不需要有prototype关键字来创建变量和方法对象,而在类增强中,我们需要使用prototype关键字来为函数创建变量和方法。几乎都是一样的,但我看到的方法是唯一的区别,创建一个对象的变量和方法。我想了解对象增强和类增强的具体原因。javascript中的对象增强和类增强之间的区别

回答

3

JavaScript中没有真正的类。它是一种基于OO的语言,但它使用原型继承来实现这一点。

的一般要点是:

  • 当你增加原型,与原型利益的所有对象,获得的功能。优点是使用较少的内存,因为每个人都共享相同的功能对象。使用原型时,模拟基于类的语言也更容易。缺点是拥有任何真正属于客体的隐私是困难的(但并非不可能)。

  • 当您增加单个对象时,您在构建对象方式上有更大的灵活性。您通常可以通过使用关闭来实现私有状态。缺点是每个对象都会获得自己的函数对象副本,从而增加内存使用量。另一个缺点是对象更“特别”,并且用它们创建“类”层次结构更加困难。许多人认为,创建这些层次往往不是必要的或无用的。

内存问题值得思考。当您创建数千个对象时,这意味着对象方法中有成千上万个函数对象,而使用原型方法的函数对象数量会少得多。

+3

请举一些例子(代码片段)来区分类和对象增强。 –