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 控制弹出窗口
Apr 10 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
JS中获取函数调用链所有参数的方法
May 07 Javascript
浅谈jquery.fn.extend与jquery.extend区别
Jul 13 Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
jquery实现input框获取焦点的方法
Feb 06 Javascript
JS实现数组的增删改查操作示例
Aug 29 Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 Javascript
vue实现分页加载效果
Dec 24 Javascript
15分钟上手vue3.0(小结)
May 20 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 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
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
Script的加载方法小结
2011/01/12 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python实现获取序列中最小的几个元素
2014/09/25 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
python3.5的包存放的具体路径
2020/08/16 Python
如何利用python读取micaps文件详解
2020/10/18 Python
利用Python优雅的登录校园网
2020/10/21 Python
美国Max仓库:Max Warehouse
2020/05/31 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
大三学生入党思想汇报
2014/01/02 职场文书
大学活动策划书范文
2014/01/10 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android