自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

jQuery讓開發(fā)者戀戀不舍的秘密

開發(fā) 開發(fā)工具 前端
今年年初,jQuery發(fā)布了1.4版本,代碼也從googlecode上遷移到了github,jQuery是本人接觸的第一個JavaScript類庫,從此便對其難以忘記。究竟是什么讓JavaScript開發(fā)者如此戀戀不舍呢?

今年年初,jQuery發(fā)布了1.4版本,代碼也從googlecode上遷移到了github,在這個版本中,jQuery有相當(dāng)多的改進與功能更新,它不僅包含了很多新的特性,更在性能優(yōu)化方面下了很大功夫。

jQuery是本人接觸的***個JavaScript類庫,俗話說初戀總是讓人難以忘記。一年以前,這種難以忘記僅僅是一種純感覺,說不出來具體原因。從純功能上說,jQuery并沒有特別出色的地方。究竟是什么讓JavaScript開發(fā)者如此戀戀不舍呢?

51CTO推薦專題:jQuery從入門到精通

在搭建taskspeed,檢查jQuery的測試代碼時,突然明曉了一個也許大家都已知道的秘密:jQuery最出色最讓人戀戀不舍的是它的API設(shè)計。

比如dom-style的api, YUI3和MooTools等框架采用的是傳統(tǒng)方式:

  1. el.setStyle(prop, val);  
  2. el.getStyle(prop);  
  3. el.setStyles({ propA: valA, propB: valB });  
  4. el.getStyles(propA, propB); // MooTools 支持 

在jQuery里,一個CSS方法全部搞定:

  1. el.css(prop); // 表示 getStyle  
  2. el.css(prop, val); // 表示 setStyle  
  3. el.css({ propA: valA, propB: valB }); // 表示 setStyles  
  4. el.css(prop, func); // func 是一個返回 val 值的函數(shù) 

對比以上兩種API設(shè)計,乍一看jQuery顯得不那么“標(biāo)準(zhǔn)”。但從可記憶性和靈活性上講,我覺得jQuery的設(shè)計都更人性化。jQuery的API還符合學(xué)習(xí)上的漸進式思維:先學(xué)會最簡單的情況el.css(prop), 再了解到還可以有兩個參數(shù),接著發(fā)現(xiàn)參數(shù)可以是map, 更進一步發(fā)現(xiàn)val還可以是一個函數(shù)。

func參數(shù)甚至能帶給學(xué)習(xí)者一種驚喜:居然還可以這樣用!jQuery把一種漸進和愉悅帶進了學(xué)習(xí)和使用的過程中,實在漂亮!YUI3的API缺少這種樂趣。查詢jQuery的API, 會有一種探尋秘密的尋寶感覺。YUI的文檔查詢則讓人感覺就是份工作,有點boring。

和YUI2 相比,YUI3的API做了些改變。在YUI2里,YAHOO.util.Dom的方法名,嚴(yán)格以動詞開頭,雖然有些方法名長點,但總體規(guī)律性很強,可記憶性還不錯。在 YUI3 里,則出現(xiàn)了byId, elementByAxis等方式命名的方法。純粹為了省幾個字符?這種不一致性很納悶。還有一些以名詞命名的方法:ancestor, docHeight, 乍一看很難以為是方法。

YUI3的API整體還是挺不錯的,比如Node的方法命名,就非常嚴(yán)謹。ancestor也是為了對應(yīng)next, prev等命名。也就是說:Y.Dom其實已變成了內(nèi)部API, 不鼓勵用戶直接調(diào)用。

但是不知為什么,本人還是覺得jQuery的API設(shè)計高出一個層次,套用一句流行話就是:jQuery API的用戶體驗更好!

【編輯推薦】

  1. 不只是口號 jQuery的設(shè)計藝術(shù)
  2. jQuery四大天王:核心函數(shù)詳解
  3. jQuery***實踐:精妙的自定義事件
  4. 拋磚引玉 自定義jQuery擴展接口
  5. 小團隊大成功 春風(fēng)得意的jQuery
責(zé)任編輯:王曉東 來源: lifesinger.org
相關(guān)推薦

2013-09-03 09:42:13

Android開發(fā)者

2012-07-30 14:57:35

Android 開發(fā)者

2018-06-06 14:03:19

2016-12-01 14:51:03

2013-09-03 09:35:30

Android開發(fā)碎片化

2013-09-02 11:33:38

百度

2014-08-20 10:02:54

GitGit能力

2012-03-13 16:04:49

2012-08-10 09:52:27

紅帽

2024-07-29 07:00:00

JavaScript字符串數(shù)組對象

2011-12-29 10:01:03

Windows 8注意事項

2017-11-22 22:38:30

2020-12-30 09:35:20

EuiAdmin后端vue框架

2012-04-11 12:07:21

Android

2013-08-14 13:16:08

App應(yīng)用開發(fā)者

2020-03-12 12:31:01

開源谷歌量子AI

2019-04-11 09:22:31

AI 數(shù)據(jù)人工智能

2012-06-13 01:23:30

開發(fā)者程序員
點贊
收藏

51CTO技術(shù)棧公眾號