`
iwebcode
  • 浏览: 2013146 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

jQuery源码分析4: jQuery.makeArray和jQuery.toArray

 
阅读更多
jQuery源码分析4: jQuery.makeArray和jQuery.toArray

var push = Array.prototype.push,

isWindow: function( obj ) {
return obj && typeof obj === "object" && "setInterval" in obj; //< 判断window对象的方法
},

merge: function( first, second ) { //合并两个数组 返回第一个数组first
var i = first.length,
j = 0;

if ( typeof second.length === "number" ) {
for ( var l = second.length; j < l; j++ ) {
first[ i++ ] = second[ j ];
}

} else {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
}
}

first.length = i;

return first;
},

makeArray: function( array, results ) {
var ret = results || [];

if ( array != null ) {
// The window, strings (and functions) also have 'length'
// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
var type = jQuery.type( array );

/**
* 当array中不存在length属性或array本身是字符串,函数或window,或正则表达式时单独处理,因为
* window, strings和functions本身也有length属性,见如下测试:
* var fun = function() {};
* alert(fun.length); //alert 0
* var str = "hello world";
* alert(str.length); //alert 11
* alert(window.length); //< alert ...
*/

if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
push.call( ret, array );
} else { //< array参数是数组时使用jQuery.merge合并两数组
jQuery.merge( ret, array );
}
}

return ret;
},

var slice = Array.prototype.slice,

toArray: function() {
return slice.call( this, 0 );
},
分享到:
评论

相关推荐

    LINQ_to_SQL语法及实例大全

    2.ToArray:将序列转换为数组 59 3.ToList:将序列转换为 泛型列表 59 4.ToDictionary:将序 列转化为字典 60 LINQ to SQL语句(19)之ADO.NET与LINQ to SQL 60 1.连接 61 2.事务 61 LINQ to SQL语句(20)之存储过程 63...

    jQuery 1.4.1 中文参考

    11.2.4 jQuery.makeArray(obj) 186 11.2.5 jQuery.map(array, callback) 186 11.2.6 jQuery.inArray(value, array) 187 11.2.7 jQuery.toArray() 188 11.2.8 jQuery.merge(first, second) 188 11.2.9 jQuery.unique...

    list.toArray方法

    NULL 博文链接:https://jiaguwen123.iteye.com/blog/1679345

    jQuery 1.5 API 中文版

    arrjQuery.makeArray( obj ) arrjQuery.map( array, fn( element, index ) ) numjQuery.inArray( val, array ) arrjQuery.merge( first, second ) fnjQuery.noop fnjQuery.proxy( fn, scope ), jQuery.proxy( scope,...

    jquery1.11.0手册

    jQuery 1.11.0 速查表 核心 jQuery 核心函数 jQuery([sel,[context]]) jQuery(html,[ownerDoc])1.8* jQuery(callback) jQuery.holdReady(hold) jQuery 对象访问 each(callback) size() length selector ...

    jQuery学习笔记之toArray()

    jquery.toArray()是将jQuery对象转换成数组,我们来分析下

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...

    jquery.csvIn:处理 csv 输入的 jQuery 插件 - 未维护

    csvIn:处理 csv 输入的 jQuery 插件免责声明:此代码不再维护,也未使用较新版本的 jQuery 进行测试。 您可能想要使用另一个 CSV 解析器,例如 。 jquery.csvIn 在 javascript 中处理 csv 数据。 在 HTML5 应用程序...

    Java编码规范总结

    4.多线程错误 - 错误的延迟初始化和更新静态属性。 5.错误用法 - 集合转换为数组元素时发生的类型转换错误。 修复建议:使用c.toArray(new String[c.size()])。 6.不良实践 - 方法返回boolean类型返回了null。 ...

    LRU-Cache:通过Node.js实现LRU缓存

    LRU缓存 Node.js中的LRU缓存实现 用法 const lru = require ( '... toArray ( 'test_key' ) . length ) ; &gt; 2 具有maxAge的实例lru /* the node will be destroyed in 1000 ms one by one */ const cache = new lru

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...

    jQuery1.4 API

    工具浏览器及特性检测 $.support $.browser $.browser.version $.boxModel 数组和对象操作 $.each(object, [callback]) $.extend([d],tgt,obj1,[objN]) $.grep(array, fn, [invert]) $.makeArray(obj) $.map(array, ...

    LRY:让我们重复自己-建立一个有趣的实用程序库

    LRY 快速开始 首先,只需使用以下命令克隆存储库: ...cd LRY npm install 使用SSH克隆 ...cd LRY npm install ...Array.chunks Array.tree Array.removeRange ...clean -删除覆盖率数据,Nyc缓存和已转译的文件,

    highland-json:用于Highland.js流的JSON编码器

    高地json 流的JSON编码。 这种JSON编码器不仅对对象流进行编码,而且还对流进行递归编码。 您可以传递一个数字流,它将返回一个数字数组。... toArray ( results =&gt; { let result = results . join ( '' ) ;

    QRCode二维码编码支持中文生成二维码的源码Asp.Net(C#)

    qrCodeEncoder.QRCodeScale = 4; qrCodeEncoder.QRCodeVersion = 8; qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; String data = "Hello 二维码!"; System.Drawing.Bitmap image = ...

    TextBox拼音检索(textBox重新封装)源码

    TextBox控件重新封装(源代码网上找的),自己重新封装方便使用; 使用步骤: 1,加载dll文件;... return list.ToArray(); } 4,数据源绑定: spellSearchBoxExSS1.SpellSearchSource = GetSpellBoxSource(dt);

Global site tag (gtag.js) - Google Analytics