//array:要循环的对象,fn循环处理函数,scope作用域
each : function(array, fn, scope){
//如果array中的元素为空,返回,不往下执行
if(Ext.isEmpty(array, true)){
return;
}
//如果array不是可迭代对象或者是JavasScript基本类型 string、number、boolean等,就将array放入一个数组中。
if(!Ext.isIterable(array) || Ext.isPrimitive(array)){
array = [array];
}
//循环array,执行fn循环函数,回调参数分别为作用域、当前被循环到的数组元素,当前循环到的数组下标、整个数组对象。至于为什么要return 一个 i,原因是如果使用者的目的是 遍历这个array,通过fn函数内部做处理,查找某个符合条件的元素,当找到时,可以return false,就可以退出each循环了,each函数返回的就是找到的元素的下标了。至于使用===是不转换类型比较,即恒等,即左右两边都是false才相等,不相等时不会去转变类型再去比较了。
for(var i = 0, len = array.length; i < len; i++){
if(fn.call(scope || array[i], array[i], i, array) === false){
return i;
};
}
}
//Obj:要迭代的对象,fn:循环处理函数,scope:作用域
iterate : function(obj, fn, scope){
//如果对象是空对象,那么直接返回,不作处理
if(Ext.isEmpty(obj)){
return;
}
//如果对象是可迭代的,那么直接调用each函数
if(Ext.isIterable(obj)){
Ext.each(obj, fn, scope);
return;
}
//如果对象不可迭代,是一个Object的实例
else if(typeof obj == 'object'){
//遍历obj对象的属性
for(var prop in obj){
//如果obj含所有的属性在自己本身,不在原型中
if(obj.hasOwnProperty(prop)){
//执行循环处理fn函数,回调参数分别为作用域,当前属性、当前属性对应的值,obj对象,至于为什么return原因类似each函数,但是它并没有return prop ,可能仅仅是为了减少循环次数,找到需要的就跳出循环吧。
if(fn.call(scope || obj, prop, obj[prop], obj) === false){
return;
};
}
}
}
}
上面这两个方法,一般数组等集合对象用each,普通对象用iterate
分享到:
相关推荐
ext 是 ExtJs 的简称,是一个强大的js 类库。本资源主要包括三个大的文件ext-all.css,ext-base.js,ext-al.js。在引用ext 类库的时候,这三个文件必不可少。另外我还提供了ext2的一个简单例子,以便大家学习交流。
ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端的Web应用程序。`extjs-basex.js`文件很可能是ExtJS库的一个部分,特别是针对BaseX扩展的功能。BaseX是一个高性能、XML数据库系统,常用于处理XML数据。在...
Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js
从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。
<script type="text/javascript" src="extjs3.2/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs3.2/ext-all-debug.js"> <script type="text/javascript" src="extjs3.2/ext-lang-zh_...
extjs-basex.js extjs-basex.js extjs-basex.js
标题中的"ext-4.2.1.883.7z"指的是ExtJS框架的一个特定版本,4.2.1.883,它被压缩成了7z格式的文件。7z是一种高效的文件压缩格式,由7-Zip软件创建,以提供更高的压缩比和更快的解压缩速度。7z文件通常需要使用支持7...
从ext官方论坛上下的。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.1.883
在CDH使用oozie 的时候需要安装ext-2.2.zip; 新增和改进的功能包括: 1、FileUploadField 文件上传 体验例子见:http://extjs.com/deploy/dev/examples/form/file-upload.html 2、GMapPanel GMap扩展 体验...
官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...
标题中的"ext-7.0.0-gpl.zip"是一个软件扩展或库的压缩包,遵循GPL(GNU General Public License)开源协议。这通常意味着它是一个免费的、可修改的软件,用户可以查看源代码并根据需要进行定制,但必须保留原始许可...
在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...
EXTJS是一种基于JavaScript的开源富客户端应用程序框架,用于构建交互式的Web应用。它提供了一套完整的组件模型,包括数据管理、布局、事件处理等机制,让开发者能够创建复杂的Web界面而无需深入HTML、CSS和...
extjs ajax 框架 extjs ajax 框架extjs ajax 框架
标题中的"ext-3.2-beta_6256-157.zip"表明这是一个ExtJS的3.2 beta版本,可能是一个开发或测试阶段的软件包,版本号6256,可能包含了一些修复和改进。 描述中提到的"ext3.2 新版ExtJS ext3帮助文档"可能有两层含义...
extjs3.3 格式化好的ext核心文件
ExtJS是一种流行的JavaScript框架,用于构建富客户端Web应用程序。它提供了丰富的组件库和强大的数据绑定功能,使得开发者能够创建复杂的用户界面。然而,在编写ExtJS代码时,频繁查阅API文档可能会降低开发效率。...
Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。通过实例学习Ext.js,我们可以深入了解其核心组件、布局管理、数据绑定以及用户界面构建等关键知识点。 首先,让我们看一下解压后的Ext.js...
2. `ext-all.js`:这个文件是ExtJS的完整实现,包含了`ext-base.js`中的所有内容,以及所有可用的UI组件、布局管理器、数据绑定等特性。`ext-all.js`几乎包含了ExtJS的所有功能,因此是大部分开发场景下的首选。然而...
标题中的"ext-2.2.zip+IntroToExt2.zip"指的是两个压缩包文件的组合,其中"ext-2.2.zip"包含了ExtJS库的2.2版本,而"IntroToExt2.zip"则是一个关于ExtJS 2.2的基础教程资料。这两个文件对于学习和使用ExtJS 2.2版本...