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 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JavaScript数据类型学习笔记
Jan 25 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
JavaScript监听手机物理返回键的两种解决方法
Aug 14 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
谈谈JS中的!!
Dec 07 Javascript
微信小程序button组件使用详解
Jan 31 Javascript
小程序开发基础之view视图容器
Aug 21 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
关于引入vue.js 文件的知识点总结
Jan 28 Javascript
JavaScript实现通讯录功能
Dec 27 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
第十二节--类的自动加载
2006/11/16 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
php给数组赋值的实例方法
2019/09/26 PHP
使用angular写一个hello world
2015/01/23 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
Javascript验证方法大全
2015/09/21 Javascript
Prototype框架详解
2015/11/25 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python使用configparser库读取配置文件
2020/02/22 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
python eventlet绿化和patch原理
2020/11/21 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
八一建军节活动方案
2014/02/10 职场文书
英语故事演讲稿
2014/04/29 职场文书
政府个人对照检查材料
2014/08/28 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
鸦片战争观后感
2015/06/09 职场文书
单位工作证明范本
2015/06/15 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js