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 迁移目录
Dec 18 Javascript
JQuery的html(data)方法与<script>脚本块的解决方法
Mar 09 Javascript
Javascript图像处理—平滑处理实现原理
Dec 28 Javascript
JavaScript匿名函数与委托使用示例
Jul 22 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 Javascript
Web开发必知Javascript技巧大全
Feb 23 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 Javascript
详解Angular 4.x 动态创建组件
Apr 25 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 Javascript
如何用JS实现简单的数据监听
May 06 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 404错误页面实现代码
2009/06/22 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
javascript学习之闭包分析
2010/12/02 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
jquery.validate使用详解
2016/06/02 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
NumPy 数组使用大全
2019/04/25 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
数控专业推荐信范文
2013/12/02 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS