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

在JavaScript类框架中声明类方法的最佳方法,javascript,class,prototype-programming,function-prototypes,Javascript,Class,Prototype Programming,Function Prototypes,我在读一点JavaScript中的OOP,并学习了一点关于使用原型对象的知识。在(非常好的阅读,顺便说一句)中,作者说了以下关于将方法声明为JavaScript类的属性与在类的原型上声明方法的区别: 实际上,这并不是最好的方法。更好的方法是在Person.prototype上定义方法。为什么这样更好?任何人任何人贝勒?在第一个版本中,每次创建一个人时,都会为他创建一个新的sayHi函数,与第二个版本一样,只有一个sayHi函数被创建,并且在所有被创建的人之间共享,因为person.prototy

我在读一点JavaScript中的OOP,并学习了一点关于使用
原型
对象的知识。在(非常好的阅读,顺便说一句)中,作者说了以下关于将方法声明为JavaScript类的属性与在类的原型上声明方法的区别:

实际上,这并不是最好的方法。更好的方法是在Person.prototype上定义方法。为什么这样更好?任何人任何人贝勒?在第一个版本中,每次创建一个人时,都会为他创建一个新的sayHi函数,与第二个版本一样,只有一个sayHi函数被创建,并且在所有被创建的人之间共享,因为person.prototype是他们的父代。因此,在原型上声明方法更节省内存

读完这篇文章后,我开始思考一个JavaScript框架,我偶尔会使用它来简化OOP语言,。在他们文档中给出的示例中,以及在我所编写的几乎所有经典代码中,我总是直接将类的方法声明为它的属性(就在花括号之间,而不是外部)。我意识到直接声明类的方法是通过对象表示法(JSON)来完成的,而不是在类的函数中直接添加方法的普通JavaScript类

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

抱歉,如果我听起来有点困惑。

为什么不看看Classy的名字,刚好超过100个位置。它似乎是基于脚本的,没有“JavaScript类”这样的东西——至少在当前版本中没有。有些函数是作为构造函数调用的。另外,
class-methods
是一种矛盾修饰法(除非你的意思是类本身是一个对象,并且它有方法),定义的方法是在实例上调用的,而不是在其模板上调用的。此外,classy是一个库,而不是一个框架-请参阅。