这不是关于并行的技术比较,而是关于如何“在jQuery中思考”和“在原型中思考”。
几年来,我一直大量使用原型,直到大约一年前我开始大量使用它时,jQuery的使用才有所减少。
有了Prototype,我就可以编写一些相当优雅的代码;我的老板曾经看过我的大量代码,并说这是他第一个找到阅读乐趣的Javascript。我从一开始就明白了--而且从一开始--几乎本能地理解了原型在做什么,并且知道如何使用它。
我的jQuery代码更多,我怎样才能把它说成“像工作人员一样”。我觉得我好像在和jQuery战斗,每一步都是这样。我不得不(试着)强迫自己坚持下去,而不是掉进“原生”JS,在那里我知道我可以更快地清除干净的跨浏览器代码。更多地使用它使它更多,而不是更少,令人沮丧。
这并不是(或者至少不是完全)不熟悉可用的功能。我经常知道我需要使用一个给定的函数,但是它的使用方式看起来确实很奇怪。这通常是一个迹象,表明我正朝着完全错误的方向走来。
我越多地思考这个问题,我就越认为我试图以一种原型的方式使用jQuery。
一定有一些眩目的闪光还没有发生在我身上。特别是如果你对这两种方法都做了大量的工作,那么你发现在方法上最基本的区别是什么?当你从一个转换到另一个时,你需要如何调整你的心态?
不要害怕说出令人眼花缭乱的显而易见的东西,因为它可能只是那令人眩目的闪光.
发布于 2010-08-28 22:23:12
我能给出的最好的建议是“拥抱this”。在jQ中,您几乎总是在谈论对包装在jQuery对象中的集合进行迭代。调用集合的方法之一对集合的所有元素执行该方法,无论它是1还是100。该方法总是会返回集合的同一个实例(除了获取属性的访问器之外)。在interation上下文中,this是设置您正在操作的项的值-通常是原始DOM元素,但它可以是对象属性或数组项的值。
发布于 2010-08-28 22:13:56
我经历了那个转变。一遍又一遍地告诉自己的主要事情是,jQuery首先是为了使DOM操作更容易、更安全。在jQuery中没有“还原”(Prototype ),我认为它被称为“注入”。为什么?因为维护人员并不认为它对于jQuery的主要任务很重要。
因此,当您编写代码以完成您自己的工作时,原型的基本对象扩展会蔓延到您的编码风格中,这在普通的ol‘jQuery中几乎不会发生。(但是,请参阅可爱的Underscore.js库,以一种jQuery友好的方式获得某些功能。)
对我来说,这使我们更容易理解如何在jQuery上构建。只不过是另一种东西而已。现在,jQuery是非常的实体,它确实使DOM操作和HTML争论比从普通Javascript中得到的要好得多。(我认为Prototype也做得不错,但jQuery非常关注这个问题。)
发布于 2010-08-28 22:25:34
为什么你需要不同的想法?与其使你的风格适应每一个随之而来的框架或语言,为什么不让框架或语言本身适应你的喜好呢?然后,您所要做的就是接受这样的想法:可能有比您已经知道的更好的编写或构造代码的方法,当这些方法出现时,客观地分析它们,然后将它们包含在您的存储库中。
选择几乎从来都不是全部或什么都没有。这两个框架都有很好的产品,您可以同时使用两者的技术来构建一个伟大的应用程序。
https://stackoverflow.com/questions/3592583
复制相似问题