WEB开发网
开发学院网页设计JavaScript jQuery中的编程范式 阅读

jQuery中的编程范式

 2012-07-25 10:07:46 来源:WEB开发网   
核心提示:$(function{})这一功能就实在是让人有些无语了, 它表示当document.ready的时候调用此回调函数,真的,jQuery中的编程范式(3),$是一个神奇的函数, 有任何问题,请$一下,总结起来, $是从普通的DOM和文本描述世界到具有丰富对象行为的jQuery世界的跃迁通道,跨过了这道门

$(function{})这一功能就实在是让人有些无语了, 它表示当document.ready的时候调用此回调函数。真的,$是一个神奇的函数, 有任何问题,请$一下。

总结起来, $是从普通的DOM和文本描述世界到具有丰富对象行为的jQuery世界的跃迁通道。跨过了这道门,就来到了理想国。

4. 无定形的参数:专注表达而不是约束

弱类型语言既然头上顶着个”弱”字, 总难免让人有些先天不足的感觉. 在程序中缺乏类型约束, 是否真的是一种重大的缺憾? 在传统的强类型语言中, 函数参数的类型,个数等都是由编译器负责检查的约束条件, 但这些约束仍然是远远不够的。一般应用程序中为了加强约束, 总会增加大量防御性代码, 例如在C++中我们常用ASSERT, 而在java中也经常需要判断参数值的范围:


if (index < 0 || index >= size)
throw new IndexOutOfBoundsException(
”Index: ”+index+”, Size: ”+size);
复制代码


很显然, 这些代码将导致程序中存在大量无功能的执行路径, 即我们做了大量判断, 代码执行到某个点, 系统抛出异常, 大喊此路不通. 如果我们换一个思路, 既然已经做了某种判断,能否利用这些判断的结果来做些什么呢? javascript是一种弱类型的语言,它是无法自动约束参数类型的, 那如果顺势而行,进一步弱化参数的形态, 将”弱”推进到一种极致, 在弱无可弱的时候, weak会不会成为标志性的特点?

看一下jQuery中的事件绑定函数bind,

A. 一次绑定一个事件 $(“#my”).bind(“mouseover”, function(){});

B. 一次绑定多个事件 $(“#my”).bind(“mouseover mouseout”,function(){})

C. 换一个形式, 同样绑定多个事件 $(“#my”).bind({mouseover:function(){}, mouseout:function(){});

D. 想给事件监听器传点参数 $(‘#my’).bind(‘click’, {foo: “xxxx”}, function(event) { event.data.foo..})

E. 想给事件监听器分个组 $(“#my”).bind(“click.myGroup″, function(){});

F. 这个函数为什么还没有疯掉???


就算是类型不确定, 在固定位置上的参数的意义总要是确定的吧? 退一万步来说, 就算是参数位置不重要了,函数本身的意义应该是确定的吧? 但这是什么


//取值
value = o.val(),
//设置值
o.val(3)
复制代码

一个函数怎么可以这样过分, 怎么能根据传入参数的类型和个数不同而行为不同呢? 看不顺眼是不是? 可这就是俺们的价值观. 既然不能防止, 那就故意允许. 虽然形式多变, 却无一句废话. 缺少约束, 不妨碍表达(我不是出来吓人的).

上一页  1 2 3 

Tags:jQuery 编程 范式

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