在JavaScript Classy框架中声明类方法的最佳方法

时间:2013-09-07 22:08:19

标签: javascript class prototype-programming function-prototypes

我在JavaScript中对OOP进行了一些阅读,并且正在学习使用prototype对象。在 this article (非常好的阅读,顺便说一句)中,作者说下面的方法是将方法声明为JavaScript类的属性而不是在类的原型上声明方法:

  

这实际上不是最佳方式。更好的方法是在Person.prototype上定义方法。为什么这样更好?任何人?任何人? Beuller?在第一个版本中,每次创建一个人时,都会为他创建一个新的sayHi函数,就像在第二个版本中一样,只创建一个sayHi函数,并在所有创建的人之间共享 - 因为Person。原型是他们的父母。因此,在原型上声明方法可以提高内存效率。

在阅读本文之后,我开始讨论一个JavaScript框架,我偶尔使用它来使用 Classy 来简化OOP。在他们的文档中给出的示例中,以及我曾编写的几乎所有Classy代码中,我总是将类的方法直接声明为它的属性(如在大括号之间而不是外部) 。我意识到直接声明Classy类的方法是通过对象表示法(JSON)而不是直接在类的函数内添加方法的普通JavaScript类来完成的。

我想知道的是,使用Classy创建的对象是否已经利用了针对类原型声明的方法的性能节省。如果我以与Classy的文档相同的方式声明类方法,是按类的每个实例声明的方法,还是声明为要共享的类的所有实例的一个方法?如果是前者,那么我能够或者应该在Classy类的原型中声明方法吗?

很抱歉,如果我听起来很混乱。

0 个答案:

没有答案