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 SpiderMonkey中的函数序列化如何进行
Dec 05 Javascript
JavaScript和CSS交互的方法汇总
Dec 02 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
VUEX采坑之路之获取不到$store的解决方法
Nov 08 Javascript
微信小程序之左右布局的实现代码
Dec 13 Javascript
处理canvas绘制图片模糊问题
May 11 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上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
python添加菜单图文讲解
2019/06/04 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
wxPython色环电阻计算器
2019/11/18 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
董事长职责范文
2013/11/08 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
个人考核材料
2014/05/15 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript