jquery对原生方法的使用
来源:互联网 发布:孤芳不自赏 知乎 编辑:程序博客网 时间:2024/05/17 02:32
var deletedIds = [];var slice = deletedIds.slice;var concat = deletedIds.concat;var push = deletedIds.push;var indexOf = deletedIds.indexOf;var class2type = {};var toString = class2type.toString;var hasOwn = class2type.hasOwnProperty;var trim = "".trim;var support = {};
class2type[ toString.call(obj) ] || "object" 为什么很多都是使用call来调用?
var arr = [];
方式一:arr.concat();
方式二:core_concat.call(arr);
方式三:core_concat.apply(arr);
思考下边2个问题:
- jQuery为什么要先把这些方法存储起来?---------------------在压缩中更加节省空间
- jQuery为什么要采用方式二或者三,而不直接使用方式一的做法
nodejser在评论中也给出了另一种答案:
var obj = {};
此时调用obj.concat是非法的,但是如果jQuery采用上边方式二或者三的话,能够解决这个问题。
也即是让类数组也能用到数组的方法(这就是call跟apply带来的另一种用法),尤其在jQuery里边引用一些DOM对象时,也能完美的用这个方法去解决,妙!
使用原生的方法,可以提高页面的速度,但是原生的属性可不见得?以下是jq对typeof方法的改写
type: function( obj ) {if ( obj == null ) {return obj + "";//"null"}return typeof obj === "object" || typeof obj === "function" ?class2type[ toString.call(obj) ] || "object" :typeof obj;}
修改了typeof null为"object"的错误和typeof function(){} 为 "object"的bug
0 0
- jquery对原生方法的使用
- jquery对原生方法的使用
- 使用原生js+jquery 对加载好的表格进行部分列的合并
- JS原生方法实现jQuery的ready()
- 原生js实现jQuery的ready方法
- JS原生方法实现jQuery的ready()
- jQuery的原生js实现---on方法
- 习惯了使用jQuery的ajax方法,看看原生js使用xmlhttpRequest实现ajax请求
- 原生ajax和jquery ajax的使用
- 原生javascript取代jquery的一些方法(jQuery-free)
- 原生javascript取代jquery的一些方法(jQuery-free)
- 原生js实现对Ajax的封装(模仿jquery)
- javascript使用原生ajax的简便方法
- jQuery的ready方法和原生load的区别
- 表格的排序原生js和jQuery方法[典型]
- jQuery部分方法对应的原生JS代码
- 【JS】如何用原生JS实现jQuery的ready方法
- 原生js和jquery框架下绑定事件的方法
- JDK环境变量的设置
- GridView隐藏列取值解决方案
- gets的读入规则与返回值
- android高分段进阶攻略(2)传感器
- 工作多年后才明白的.NET底层开发技术
- jquery对原生方法的使用
- 胖子伤不起
- VS2008 常见系统错误
- JAVA----ArcSDE环境搭建
- Valid number
- python for android : 读通讯录
- Java自学视频整理(持续更新中...)
- 第一周项目3-日期结构体
- SEO站内优化很重要