2010-01-12 28 views
5

我现在是一个开发人员,在过去的几年中,我使用的是原型框架,它是OOP的实现,用于Javascript。我也使用过jQuery和其他一些框架。值得使用原型还是应该使用面向JavaScript的OOP?

我一直在研究如何JS工作以及如何从面向对象不同,因为它是一个面向原型语言。在我看来,其实是一个伟大的概念,原型导向的语言。

有了正确的注意:
- 这是语言是怎样来使用,等于是为更快,更高效,理论上,更简单,更顺畅。
- 每个浏览器都有自己的JavaScript实现方式,因此在所有浏览器或者至少大多数浏览器中都有一个简洁的代码工作方式,这是不可能的。
- 通常那些OOP框架(dojo.declare(),Js.Class,MooTools等)不仅适合做出好的工作,而且它们是跨浏览器。

我不禁怀疑,是否值得开始做RIA的使用JavaScript原型为导向?或者我应该去为 Dojo.declare(), js.class或类似?

回答

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

+0

这些如果的是一个巨大的恐惧给我,哈哈... – 2010-01-12 17:29:06

+0

不要误会我的意思,我觉得空中接力我很珍视它。我只想听听一些意见。 – 2010-01-12 17:35:29

+0

有任何面向js的面向原型的框架?感谢你的回答。 – 2010-01-12 17:36:21

0

我在RIA上使用了最近一年的prototype.js。我不习惯你正在谈论的图书馆,但我使用jQuery。学习如何使用prototype.js后,我只是避免了jQuery。我能够做任何使用prototype.js的东西,特别是当范围真的很重要的原型处理它如此美丽的方式。在任何其他库中找不到原型提供的绑定替换方法。这非常有用。我建议你不带恐惧地使用原型。这很酷,很容易处理。