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 相关文章推荐
使用jQuery获得内容以及内容的属性
Feb 26 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
JS实现的自定义右键菜单实例二则
Sep 01 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
Feb 10 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
Feb 19 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
JS简单获取并修改input文本框内容的方法示例
Apr 08 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
Vue + Element UI图片上传控件使用详解
Aug 20 Javascript
微信小程序按顺序同步执行的两种方式
Dec 20 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
Protoss兵种介绍
2020/03/14 星际争霸
YB217、YB235、YB400浅听
2021/03/02 无线电
PHP新手上路(十二)
2006/10/09 PHP
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
Python中asyncore的用法实例
2014/09/29 Python
python sort、sorted高级排序技巧
2014/11/21 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Django实现跨域请求过程详解
2019/07/25 Python
荷叶圆圆教学反思
2014/02/01 职场文书
教师学习培训邀请函
2014/02/04 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
高中同学会致辞
2015/08/01 职场文书
同学聚会祝酒词
2015/08/10 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
解读Vue组件注册方式
2021/05/15 Vue.js