【Javascript】Prototype源码浅析—Hash部分(一)
Hash
Hash是Prototype作者扩展出来的一个数据类型。 本质上他就是一个普通的javascript对象(注:不要纠结什么javascript变量都是对象,这里说new Object()那种),然后在这个对象上面扩展出来一些其他的方法。
基本原理
基本的原理的代码说明就是:
...Hash是Prototype作者扩展出来的一个数据类型。 本质上他就是一个普通的javascript对象(注:不要纠结什么javascript变量都是对象,这里说new Object()那种),然后在这个对象上面扩展出来一些其他的方法。
基本的原理的代码说明就是:
...现在来看Enumerable剩下的方法
toArray | size | inspect
inject | invoke | sortBy | eachSlice | inG...
剩下的方法太多,于是分作两部分。
亮点就是$break和$continue,以及grep方法的思想。
前面each方法中掉了一个方面没有说,就是源码中的$break和$continue。 这两个变量是预定义的,其作用相当于普通循环里面的break和continue语句的作用。 出于效率的考虑,在某些操作中并不需要完全遍历一个集合(不局限于一个数组),所以...
在javascript中,根本找不到 Enumerable 的影子,因为这一块是Prototype作者从Ruby中借鉴过来的。 并且Enumerable在实际中根本没有直接应用的机会,都是混入到其他的对象中,可以说是其他对象的一个“父类”(不过只是调用了Object的extend方法,进行了方法的直接拷贝而已)。
我并不熟悉Ruby,不过看Enumerable中的一些方...
Prototype在原生对象的基础上扩展,分别是 Object,Function,String,Number,Array,Date,前面分析了 Object,Function,String,还剩下Number,Array,Date。
Number部分方法比较少,一共有8个:
今天在群里讨论alert的问题,说到了alert的改造,虽然说改造原生方法不是好做法,但是既然提到了就可以讨论下,所以我按照他们的讨论给出了下面的一段代码:
Read More
【Javascript】Prototype源码浅析—String部分(四)之补充
2012-01-13
interpolate : 将字符串看作一个模板,并使用 object 的属性填充它。
sub : 将字符串中前指定个个与 pattern 指定的模式匹配的子串用 replacement 替...
Read More
【Javascript】Prototype源码浅析—String部分(三)之HTML字符串处理
2012-01-13