您当时的方位:主页 > 言语编程 > jQuery

jQuery最超卓的是 API 规划

2014-10-28  

jQuery 将立刻发布 1.4 正式版,代码也从 googlecode 上搬迁到了 github. jQuery 是我触摸的第一个 JS 类库,俗话说初恋总是让人难以忘掉。一年曾经,这种难以忘掉仅仅是一种纯感觉,说不出来详细原因。前几天从头看了一遍 github 上的源码。从纯功用上说,jQuery 并没有特别超卓的当地。终究是什么让我如此依依不舍呢?

昨日建立 taskspeed, 查看 jQuery 的测验代码时,忽然明晓了一个或许咱们都已知道的隐秘:

jQuery 最超卓最让人依依不舍的是它的 API 规划

比方 dom-style 的 api, YUI3 和 MooTools 等结构选用的是传统办法:

el.setStyle(prop, val);el.getStyle(prop);el.setStyles({ propA: valA, propB: valB });el.getStyles(propA, propB); // MooTools 支撑

在 jQuery 里,一个 css 办法悉数搞定:

el.css(prop); // 表明 getStyleel.css(prop, val); // 表明 setStyleel.css({ propA: valA, propB, valB }); // 表明 setStylesel.css(prop, func); // func 是一个回来 val 值的函数

比照以上两种 API 规划,乍一看 jQuery 显得不那么“规范”。但从可记忆性和灵活性上讲,我觉得 jQuery 的规划都更人性化。jQuery 的 API 还契合学习上的渐进式思想:先学会最简略的状况el.css(prop), 再了解到还能够有两个参数,接着发现参数能够是 map, 更进一步发现 val 还能够是一个函数。func 参数甚至能带给学习者一种惊喜:竟然还能够这样用!jQuery 把一种渐进和愉悦带进了学习和运用的过程中,真实美丽!

YUI3 的 API 短少这种趣味。查询 jQuery 的 API, 会有一种探寻隐秘的寻宝感觉。YUI 的文档查询则让人感觉便是份作业,有点 boring.

和 YUI2 比较,YUI3 的 API 做了些改动。在 YUI2 里,YAHOO.util.Dom 的办法名,严厉以动词最初,尽管有些办法名长点,但全体规律性很强,可记忆性还不错。在 YUI3 里,则呈现了 byId, elementByAxis 等办法命名的办法。朴实为了省几个字符?这种不一致性很疑惑。还有一些以名词命名的办法:ancestor, docHeight, 乍一看很难以为是办法。

老婆说,要睡觉了,就不码字了。最终说一句:YUI3 的 API 全体仍是挺不错的,比方 Node 的办法命名,就十分谨慎。ancestor 也是为了对应 next, prev 等命名。也便是说:Y.Dom 其实已变成了内部 API, 不鼓舞用户直接调用。

可是不知为什么,我仍是觉得 jQuery 的 API 规划高出一个层次,套用一句流行话便是:
jQuery API 的用户体会更好。