为什么jQuery似乎不鼓励使用常规OOP?

Jor*_*enB 15 oop jquery prototypejs

我们最近使用Prototype构建了一个Web应用程序,大量使用了Class.Create()功能.现在,我们正在考虑迁移到jQuery,因为它似乎被认为是一个"更好"的库.我一直在阅读有关该主题的一些内容,并发现jQuery没有像Prototype那样直接内置对类创建的支持.当然,还有.prototype和jQuery.extend(如/sf/ask/5563421/中所述),但之后一些更多的搜索,我觉得jQuery并不真的"想要"你这样编写脚本......

同一页面上有一篇帖子提到了John Resig的Classy插件,这对我来说很棒.但是,该页面表明它实际上是一个愚人节笑话,并且Resig实际上建议不要使用该代码.我很高兴,但我想知道这一切的原因是什么,当然,他们希望你做的是什么.有人可以开导我吗?

-编辑-

谢谢你有趣的答案.为了清楚起见:这是否意味着将我在Prototype中创建的类重写为"塑造"一个类的jQuery方式,并且仍然以与以前相同的"方式"使用它们?或者这仍然被认为是不好的做法,我应该采用不同的方法吗?

Jus*_*ner 11

第一个蹩脚的谷歌搜索"面向对象的javascript"转向了这个...但它解释了我想要了解的观点:

JavaScript面向对象编程

只需看看第一段,你就会发现:

Javascript不是完全面向对象的编程语言.JS中的类的使用基于原型功能.Prototype库掩盖了原型功能的使用,以创建您的类.jQuery希望您使用原型功能,就像使用常规JS扩展jQuery本身并创建自己的自定义对象一样.

  • jQuery增强了JavaScript,并没有尝试模拟其他语言.+1 (7认同)
  • 引用的段落完全错误.Javascript是一种完全面向对象的编程语言.它不是基于类的OO语言.Prototype的设计师决定提供一些Class-fu来让很多人更舒服(包括我,当我开始使用它时).读过Crockford的"Javascript:The Good Parts"之后,我现在认为这是一个错误. (4认同)