是否值得使用原型或我们应该使用OOP的JavaScript?

时间:2010-01-12 17:08:01

标签: javascript oop prototype-oriented

我现在是开发人员,过去几年我使用原型框架和OOP的实现,用于Javascript。我也使用过jquery和其他一些框架。

我一直在研究js是如何工作的以及与OOP有何不同,因为它是一种面向原型的语言。在我看来,实际上是一个伟大的概念,原型导向的语言。

给予正确的关注:
- 这就是语言的用法,因此更快,更高效,理论上更简单,更顺畅。 - 每个浏览器都有自己的javascript应该如何工作的实现,有时不可能在所有浏览器中使用简洁的代码,或者至少是大多数浏览器。 - 通常那些OOP框架(dojo.declare(),Js.Class,MooTools等)不仅适合做出好的工作,而且它们是跨浏览器。

我不禁想知道,是否值得开始使用面向javascript原型的RIA?或者我应该去 Dojo.declare() js.class 或类似的?

2 个答案:

答案 0 :(得分:3)

I don't think you must forfeit OOP when you program in JS;我建议你embrace OOP

  • 我更喜欢提供类的ExtJS library,鼓励子类化,并提供一个定义良好的类层次结构的非常好的例子。
  • Douglas Crockford提供了将成员数据和成员函数设为私有(无保护)的示例。
  • 许多人使用JavaScript的原型作为实现继承的工具;再看看Douglas Crockford
  • 多态性很容易,因为JS没有强类型。

此外,许多流行的JavaScript库都会抽象浏览器与开发人员的差异;如果您选择使用JS库,您可能会在代码中找到很少的“ifs”来弥补浏览器的差异。

最后,还有其他一些good resources from SO

答案 1 :(得分:0)

我过去一年在RIA上使用prototype.js。我不习惯你正在谈论的库,但我使用jQuery。在学习了如何使用prototype.js之后我就避免使用jQuery了。我能够做任何使用prototype.js的事情,特别是当范围真正重要时,原型以如此美妙的方式处理它。您无法在任何其他库中找到原型提供的 bind 方法的替换。这非常有用。我建议你不要害怕地使用原型......它很酷且很容易处理。