Prototype 学习 工具函数学习($A方法)


Posted in Javascript onJuly 12, 2009

$A方法:
Accepts an array-like collection (anything with numeric indices) and returns its equivalent as an actual Array object. This method is a convenience alias of Array.from, but is the preferred way of casting to an Array.

function $A(iterable) { 
if (!iterable) return []; 
if ('toArray' in Object(iterable)) return iterable.toArray(); 
var length = iterable.length || 0, results = new Array(length); 
while (length--) results[length] = iterable[length]; 
return results; 
}

如果传进来的参数为null, undefined and false 则直接返回空数组
如果传进来的参数对象里有toArray方法,这直接调用参数的toArray方法,因为有许多Prototype对象里面已经定义好了toArray方法,所以可以直接调用toArray方法
例如:
var array={ 
toArray : function(){ 
return [1,2,3]; 
} 
} 
//1,2,3 
alert($A(array));

接下来根据参数的length建立新数组,然后逐个把参数中的元素复制到新数组中去,最后返回新数组对象
下面给出prototype帮助文档的一段说明和例子也许更能说明这个函数的作用:
/*The well-known DOM method document.getElementsByTagName() doesn't return an Array, but a NodeList object that implements the basic array "interface." Internet Explorer does not allow us to extend Enumerable onto NodeList.prototype, so instead we cast the returned NodeList to an Array:*/ 
var paras = $A(document.getElementsByTagName('p')); 
paras.each(Element.hide); 
$(paras.last()).show();

还有一点:
Array.from = $A;
数组对象的from静态方法和$A是一个方法
Javascript 相关文章推荐
用javascript自动显示最后更新时间
Mar 15 Javascript
JS读取cookies信息(记录用户名)
Jan 10 Javascript
关于jquery的多个选择器的使用示例
Oct 18 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
jQuery实现二级下拉菜单效果
Jan 05 Javascript
学习Node.js模块机制
Oct 17 Javascript
Node.js常用工具之util模块
Mar 09 Javascript
JavaScript中关于class的调用方法
Nov 28 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
vue2路由方式--嵌套路由实现方法分析
Mar 06 Javascript
Prototype 学习 工具函数学习($方法)
Jul 12 #Javascript
Prototype 学习 Prototype对象
Jul 12 #Javascript
javascript 动态加载 css 方法总结
Jul 11 #Javascript
checkbox 复选框不能为空
Jul 11 #Javascript
javascript 页面只自动刷新一次
Jul 10 #Javascript
javascript div 遮罩层封锁整个页面
Jul 10 #Javascript
JQuery 实现的页面滚动时浮动窗口控件
Jul 10 #Javascript
You might like
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
php开发环境配置记录
2011/01/14 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
python和opencv实现抠图
2018/07/18 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
python将时分秒转换成秒的实例
2019/12/07 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
Overload和Override的区别
2012/09/02 面试题
医院实习接收函
2014/01/12 职场文书
给小学生的新年寄语
2014/04/04 职场文书
创先争优宣传标语
2014/10/08 职场文书
企业年检委托书范本
2014/10/14 职场文书
会计稽核岗位职责
2015/04/13 职场文书
工作态度不好检讨书
2015/05/06 职场文书
导游词之太原天龙山
2020/01/02 职场文书