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提升性能最佳实践小结
Dec 06 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
深入理解Node.js的HTTP模块
Oct 12 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
vue-cli2 构建速度优化的实现方法
Jan 08 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
Nov 13 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 Javascript
js中延迟加载和预加载的具体使用
Jan 14 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扩展开发经验分享
2012/09/06 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
自制PHP框架之设计模式
2017/05/07 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python操作列表之List.insert()方法的使用
2015/05/20 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
保安队长职务说明书
2014/02/23 职场文书
幼儿园课题方案
2014/06/09 职场文书
2014年学习部工作总结
2014/11/12 职场文书
消夏晚会主持词
2015/06/30 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
Win11快速关闭所有广告推荐
2022/04/19 数码科技
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库