Prototype 1.6 边学边译 -- 工具函数 $A
来源:互联网 发布:淘宝网的评价管理在哪 编辑:程序博客网 时间:2024/05/19 02:41
$A
$A(iterable) -> actualArray
接受一个类似于数组的集合(可以使用数字进行索引)作为参数,返回与之等同的 Array
对象。该函数是 Array.from
方法的简称, 但在将集合转换为 Array
时,应优先使用它。
$A
主要是用来将可当作数组使用的任意集合转换为一个实质的 Array
对象,例如: NodeList
或是通过各种 DOM 方法返回的 HTMLCollection
集合,还有在自定义的函数中使用到的 arguments
对象。
使用 Array
对象的理由很简单:Prototype 扩展了 Array
, 使其增加了大量额外的方法,并且还混入(mix in)了 Enumerable
模块,随之又带进很多强大的方法。因此,在 Prototype 中,Array
相对于其它集合类型,更像是一张王牌。
集合到 Array
的转换规则非常简单:null
,undefined
和 false
转换为一个空的Array
;任何具有显式的 toArray
方法的对象(就像许多 Prototype 对象一样),直接调用 toArray
方法进行转换;否则, 首先假定参数“看起来像是一个数组”(例如具有 length
属性和 []
操作符),然后按常规去遍历它的各个组成部分。
样例
大家所熟悉的 DOM 方法 document.getElementsByTagName()
其实并没有返回一个 Array
,而是返回一个实现了基本数组“接口”的 NodeList
对象。IE 不允许我们在 NodeList.prototype
上扩展 Enumerable
。所以只能先返回 NodeList
对象,再转换为 Array
:
var paras = $A(document.getElementsByTagName('p')); paras.each(Element.hide);$(paras.last()).show();
注意上面使用的 each
和 Element.hide
方法,因为数组可以包含任何对象(而不仅只是 DOM 元素),所以 $A
并没有对返回的值进行 DOM 扩展。为使用 hide
实例方法, 我们首先要确保对所有的目标元素都进行了 DOM 扩展:
$A(document.getElementsByTagName('p')).map(Element.extend).invoke('hide');
你想用一种简单的方法显示出你函数里的参数吗?Array
有一个很好用的方法 join
。 但是存在于所有函数对象中的 arguments
对象与 Array
并没有继承关系。那么, 该如何做呢?你会选择复杂的方法还是简单的方法:
// 复杂的方法...function showArgs() { alert(Array.prototype.join.call(arguments, ', ')); } // 简单的方法... function showArgs() { alert($A(arguments).join(', '));}
- Prototype 1.6 边学边译 -- 工具函数 $A
- Prototype 1.6 边学边译 -- 工具函数 $
- Prototype 1.6 边学边译 -- 工具函数 $$
- Prototype 1.6 边学边译 -- 工具函数 $$
- Prototype 1.6 边学边译 -- 工具函数 $F
- Prototype 1.6 边学边译 -- 工具函数 $H
- Prototype 1.6 边学边译 -- 工具函数 $R
- Prototype 1.6 边学边译 -- 工具函数 $w
- Prototype 1.6 边学边译 -- 工具函数 document.getElementsByClassName
- Prototype 1.6 边学边译 -- 工具函数 Try.these
- Prototype 学习——工具函数学习($A方法)
- Prototype使用$A()函数
- Prototype 1.6 边学边译 -- 常用工具函数
- prototype笔记(一)----使用$A()函数
- Prototype 学习——工具函数学习($方法)
- Prototype 学习——工具函数学习($w,$F方法)
- Ajax学习笔记之Prototype的工具函数汇总
- prototype $() 函数
- gwt-ext中关于FormPanel的数据的验证:
- 链表操作详解(转)
- 用ADSI+ASP添加IP到IIS禁止访问列表中
- IBatisNet 之 自动生成主关键字和Insert返回主键ID
- .NET框架4.0中都有些什么?
- Prototype 1.6 边学边译 -- 工具函数 $A
- 挖掘FOR的潜力(5)
- java字符串替换字符串实例
- 什么是Kernel、Shell、Bash 很幽默的解释
- asp.net 开发常见问题及解决方法(一)
- 北大2394题
- 目前觉得比较牛的事情
- C# 对图片进行缩放
- 奥斯卡提名和获奖电影名单