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入门教程(12) js对象化编程
Jan 31 Javascript
JavaScript入门之基本函数详解
Oct 21 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
JavaScript微信定位功能实现方法
Nov 29 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
Mar 21 jQuery
JS中图片压缩的方法小结
Nov 14 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
Mar 01 Javascript
如何让微信小程序页面之间的通信不再变困难
Jun 03 Javascript
Vue学习之组件用法实例详解
Jan 06 Javascript
小程序富文本提取图片可放大缩小
May 26 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
基于mysql的论坛(1)
2006/10/09 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php无限级分类实现方法分析
2016/10/19 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
js里面的变量范围分享
2020/07/18 Javascript
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
附答案的Java面试题
2012/11/19 面试题
存储过程的优缺点是什么
2015/01/10 面试题
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
数控专业毕业生自荐信范文
2014/03/04 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
市场营销战略计划书
2014/05/06 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
车间安全生产管理制度
2015/08/06 职场文书
详解 TypeScript 枚举类型
2021/11/02 Javascript