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深入理解js闭包
Jul 03 Javascript
javascript 闭包疑问
Dec 30 Javascript
基于jquery的无限级联下拉框js插件
Oct 29 Javascript
Javascript 加载和执行-性能提高篇
Dec 28 Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 Javascript
JS动态日期时间的获取方法
Sep 28 Javascript
理解JavaScript事件对象
Jan 25 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
vue中计算属性(computed)、methods和watched之间的区别
Jul 27 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 Javascript
详解jQuery-each()方法
Mar 13 jQuery
原生小程序封装跑马灯效果
Oct 21 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 翻页 实例代码
2009/08/07 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
javascript 写类方式之一
2009/07/05 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
使用Python神器对付12306变态验证码
2016/01/05 Python
Python 中的with关键字使用详解
2016/09/11 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
运行Python编写的程序方法实例
2020/10/21 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
值传递还是引用传递
2015/02/08 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
管理科学大学生求职信
2013/11/13 职场文书
社会实践心得体会
2014/01/03 职场文书
项目管理计划书
2014/01/09 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
大学迎新生欢迎词
2015/09/29 职场文书