目前我正在 Node.js 上使用 JavaScript 进行编码,我在问自己是否有一种方便的方法可以使用具有私有和公共属性(和方法)的类。我来自 PHP,所以有没有类似的结构?
我一直在用模块做这件事,我导出公共方法和 vars 并保持其余的私有,这是正确的方法吗?有没有关于使用 JavaScript 进行 OOP 的好的指南?
在 Javascript 中,“私有”的概念并不真正存在,尽管一旦您掌握了该语言的窍门,它是可能的。
这是 Javascript 中 OOP 的一个很好的介绍:https ://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript
Javascript 可以使用原型来模拟(或者更确切地说替换)一些/大多数类行为,但是对于习惯于类的人来说,语法可能有点混乱。如果您打算专业地使用 Javascript,那么学习原型设计或多或少是必须的。
有传言称,可能最终会进入 Javascript 的ECMAScript 6将添加对类的支持。虽然它还不可用:-/
Typescript是 Microsoft 的一个颇受争议的 Javascript 扩展,它为 Javascript 添加了一些类支持和强类型。它可以编译成标准的 Javascript,或者可以作为模块添加到 node.js。
您可以实现“类结构”,尽管您真正要做的是使对象文字表现得像一个类。
我可以理解为什么它可能会令人困惑,尤其是当您阅读 Backbone JS 的文档时——它们将对象定义为类——而实际上没有类!只有对象定义。
使用诸如 Backbone 之类的框架会使事情变得更容易理解,因为您正在使用类似结构的类。可能是您开始的好地方。