WEB开发网
开发学院网页设计JavaScript 窥探jQuery——面向JavaScript程序员 阅读

窥探jQuery——面向JavaScript程序员

 2010-09-14 13:09:45 来源:WEB开发网   
核心提示:当 jQuery 在2006年1月现身时,给我的第一印象,窥探jQuery——面向JavaScript程序员,是这玩意儿构造得很精明,基于CSS选择器(CSS selectors)来打点一切,在其内添加的属性一旦发生冲突,所带来的风险,其思路相当灵巧(参考getElementsBySelector),但链盒工事(cha

当 jQuery 在2006年1月现身时,给我的第一印象,是这玩意儿构造得很精明。基于CSS选择器(CSS selectors)来打点一切,其思路相当灵巧(参考getElementsBySelector)。但链盒工事(chaining stuff)看起来更像个噱头,并且整体看来,jQuery库提供的功能并不能覆盖所有基础性的东西。因此我断定,jQuery只会昙花一现。

几个月以来,我逐渐明白自己想错了。从技术工艺上考量,jQuery十分凌厉。它用简洁的方法,把大量常用功能封装起来,并提供精巧的插入式API,来满足标准库之外的功能模块的实现。jQuery秉持的核心,乃DOM元素的集合(译注:通常是某些子集合)——它把元素集合作为一个根本,给高度抽象出来了。最重要的,是这种遵循最佳实践的抽象,能让jQuery与其他JavaScript代码相处融洽。

很多对jQuery的介绍,都是针对设计师和初级开发人员。接下来我想说明,为什么jQuery也会吸引那些富有经验的开发人员。

名称空间(Namespacing)

编写可重用的、优秀的JavaScript代码,其关键在于对名称空间的积极把控。JavaScript只拥有单一的、全局的名称空间(即window对象),而很多程序员(以及一些库)恣意地为之添加各种东西。要知道全局变量是魔鬼!聪明的开发人员,会使用类似组件模式的技术,来尽力减少全局对象的数量。

jQuery仅向全局名称空间引入一个标记:jQuery函数/对象。其余的要么是jQuery的直接属性(译注:原文‘directy property’系笔误,应是‘direct property’),要么就是调用jQuery函数所返回的对象的方法。

那“语言升级”(language enhancements)又是什么呢?大多数库会提供映射,过滤,剥离,往往是浏览器的JavaScript引擎所缺少的那些功能。还有一些库,直接扩展了JavaScript内置的String和Array类,但这是冒险的做法。String.prototype和Array.prototype也有各自的名称空间,在其内添加的属性一旦发生冲突,所带来的风险,不亚于在全局环境下的草率大意。

1 2 3 4 5 6  下一页

Tags:窥探 jQuery 面向

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接