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 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
Feb 17 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
javascript实现拖放效果
Dec 16 Javascript
bootstrap日期插件daterangepicker使用详解
Oct 19 Javascript
vue项目中导入swiper插件的方法
Jan 30 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 Javascript
JS监听事件的叠加和移除功能
Nov 19 Javascript
理理Vue细节(推荐)
Apr 16 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 Javascript
SSM VUE Axios详解
Oct 05 Vue.js
Java无向树分析 实现最小高度树
Apr 09 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数组和explode函数示例总结
2015/05/08 PHP
js 操作css实现代码
2009/06/11 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
python的mysqldb安装步骤详解
2017/08/14 Python
python 实现倒排索引的方法
2018/12/25 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Keras设置以及获取权重的实现
2020/06/19 Python
Python 如何展开嵌套的序列
2020/08/01 Python
python爬取微博评论的实例讲解
2021/01/15 Python
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
学校元旦晚会方案
2014/02/19 职场文书
我的求职择业计划书
2014/04/04 职场文书
大型营销活动计划书
2014/04/28 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
研讨会致辞
2015/07/31 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js