1. 外层沙箱以及命名空间$

  几乎稍微有点经验前端人员都这么做,为了避免声明了一些全局变量而污染,把代码放在一个“沙箱执行”,然后在暴露出命名空间(可以为API,函数,对象):

  

  

2. jQuery的工具方法

  

  需要调用concat时可以通过以下方法调用,关于call跟apply的用法自行理解,:)

  var arr = [];  

  方式一:arr.concat();  
  方式二:core_concat.call(arr);

  方式三:core_concat.apply(arr);

  思考2个问题:

  1. jQuery为什么要先把这些方法存储起来?
  2. jQuery为什么要采用方式二或者三,而不直接使用方式一的做法?

  调用实例arr的方法concat时,首先需要辨别当前实例arr的类型是Array,在内存空间中寻找Array的concat内存入口,把当前对象arr的指针和其他参数压入栈,跳转到concat地址开始执行。

  当保存了concat方法的入口core_concat时,完全就可以省去前面两个步骤,从而提升一些性能。

  var obj = {};

  此时调用obj.concat是非法的,但是如果jQuery采用上边方式二或者三的话,能够解决这个问题。

  也即是让类数组也能用到数组的方法(这就是call跟apply带来的另一种用法),尤其在jQuery里边引用一些DOM对象时,也能完美的用这个方法去解决。

3. $.trim

  jQuery的trim函数是用来去除字符串两端空格(jQuery源码里边使用了7次),这个函数也是使用频率很高的,因为时常要对用户在页面上输入的文本trim一下。

   $.trim(”    前尾有空格   “) === “前尾有空格”。

  

   core_tirm = String.prototype.trim;

4. $.each 方法

   jQuery的each是我使用最频繁的方法,在它内部也是使用很频繁的一个API(一共用了59处),使得遍历一个数组或者对象的代码段变得十分的简洁,API的设计准则应当如此。

    

接下来再看看jquery的each实现方法

     

  

1. apply calll

最新文章

  1. 烂泥:VMWare Workation双网卡配置IP地址
  2. AC日记——简单密码 openjudge 1.7 10
  3. PLSQL_基础系列02_分组函数GROUP BY / ROLLUP / CUBE(案例)
  4. windows timeGetTime() 函数 获取系统从开机到现在的毫秒时间值
  5. Flume OutOfMemoryError错误
  6. FZU2235 国王的出游 水题
  7. python 装饰器、生成器、迭代器
  8. Android解析Excel文档完整示例
  9. 直接存储器存取(Direct Memory Access,DMA)详细讲解
  10. 多线程之批量插入小demo
  11. Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用-um
  12. python------virtualenv&virtualenvwrapper的使用
  13. .net开源项目整理
  14. 洛谷P3586 [POI2015]LOG(贪心 权值线段树)
  15. unbuntu 安装python包提示E: Unable to locate package python-timeout
  16. 数据库相关--mysql中的单表查询
  17. j.u.c系列(07)---之读写锁:ReentrantReadWriteLock
  18. 设计简单登录界面(Java web)
  19. Gruntjs提高生产力(三)
  20. 不建议使用*{margin:0; padding:0}?

热门文章

  1. photpshop渐变玩法_学习教程
  2. Navicat 选择语句
  3. JavaScript-学习一获取表单的值
  4. web ajax跨域问题解决方案
  5. SQL主、外键,子查询
  6. Scut:从PackageReader分析客户端协议规则
  7. SQLSERVER收缩数据库日志
  8. fpdf使用標楷體
  9. Keil C51里面lib文件生成和调用方法
  10. linux crontab 计划任务 atd和windows下的计划任务