这不是关于并排的技术比较,而是关于如何“在jQuery中思考”与“在原型中思考”。
我已经使用了Prototype很多年了,jQuery有点不那么重,直到大约一年前我开始做很多事情。
使用Prototype,我可以编写一些相当优雅的代码;我的老板曾经审查过我的大量代码,并说这是他第一次有兴趣阅读的Javascript。我理解 - 并且从一开始就理解 - 几乎本能地是Prototype试图做的事情,并且知道如何使用它。
我的jQuery代码更多,我怎么能把它,“workmanlike”。我觉得好像我在每一步都在与jQuery作斗争。我必须(尝试)强迫自己坚持使用它而不是直接进入“原生”JS,我知道我可以更快地抨击干净的跨浏览器代码。使用它可以使它更多,而不是更少,令人沮丧。
不是(或至少不完全)不熟悉可用的功能。我经常知道我需要使用给定的函数,但它的使用方式似乎真的很奇怪。这通常表明我正在采取完全错误的方式。
我越想到这一点,我就越想以原型方式使用jQuery。
还有一些令人目不暇接的闪光灯尚未发生在我身上。特别是如果你和两者都做了很多工作,你发现什么是最基本的方法差异?当你从一个切换到另一个时,你需要如何调整你的心态?
不要害怕说出明显的眩目,因为它可能只是那种令人目眩的闪光......
答案 0 :(得分:4)
我经历了这种转变。一遍又一遍地告诉自己的主要事情是,jQuery首先是关于使DOM操作更容易,更安全的跨平台。在jQuery中没有“reduce”(Prototype曾经称之为“注入”,我认为)。为什么?因为维护者不认为它对jQuery的主要任务很重要。
因此,当您编写代码以完成自己的工作时,Prototype的基础对象扩展进入您的编码风格的方式,嗯,这几乎不会发生在简单的'jQuery中。 (但是,请参阅可爱的Underscore.js库,以便以jQuery友好的方式获得某些功能。)
对我来说,这样可以更容易地弄清楚如何构建jQuery。这只是一种不同的事情。现在,jQuery 非常可靠,它确实使得DOM操作和HTML争论 lot 比从纯Javascript获得的更好。 (我认为Prototype也做得很好,但是jQuery非常关注这个问题。)
答案 1 :(得分:1)
我能给出的最佳建议是“拥抱this
”。在jQ中,您几乎总是在讨论迭代jQuery对象中包含的集合。调用set的方法之一对集合的所有元素执行方法,无论是1还是100.该方法总是返回集合的相同实例(除了获取属性的访问器)。在交互的上下文中this
是您正在操作的集合中的项的值 - 通常是原始DOM元素,但它可以是对象属性或数组项的值。
答案 2 :(得分:0)
为什么你需要以不同的方式思考?不是根据自己的框架或语言调整自己的风格,为什么不根据自己的喜好调整框架或语言本身。然后,你所要做的就是接受这样的想法,即可能有比你已经知道更好的编写或构造代码的方法,并且当这些方式出现时,客观地分析然后将它们包含在你的存储库中。
选择几乎不是全部或全无。这两个框架都提供了很多产品,您可以使用两者中的技术来构建出色的应用程序。