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 相关文章推荐
JS 动态加载脚本的4种方法
May 05 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
跟我学习javascript的var预解析与函数声明提升
Nov 16 Javascript
浅析Javascript匿名函数与自执行函数
Feb 06 Javascript
去除html代码里面的script正则方法
May 19 Javascript
JavaScript触发onScroll事件的函数节流详解
Dec 14 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
layui文件上传实现代码
May 20 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
Jquery实现获取子元素的方法分析
Aug 24 jQuery
vue开发简单上传图片功能
Jun 30 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的可变变量名需要的注意的问题
2013/06/20 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
python发布模块的步骤分享
2014/02/21 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Django的CVB实例详解
2020/02/10 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
关于逃课的检讨书
2014/01/23 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
自我鉴定标准格式
2014/03/19 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
国情备忘录观后感
2015/06/04 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers