读jQuery源码之一-attach

  从这篇开始,我会从jQuery2.1.4的源码,顺序阅读。开篇里面骨架图,已经可以知道,jQuery的核心从函数function(window,noGlobal){…}开始

   1.源码46-90行代码:多个变量声明

  1.1 数组的四个方法

  slice(a,b):选取数组中的部分元素组成一个新的数组返回,值得注意的地方:①下标从0开始 ②范围a<=x

  

  concat:拼接数组或元素返回一个拼接后的新数组。push:在数组后面添加一个元素。indexOf:返回元素在数组中第一次出现的索引。

  1.2 Object的toString方法:返回一个代表Object的字符串

  同工call调用Object.prototype.toString传递不同的this参数,可以检查该参数的类型。如下:

  

  至于javascript的prototype,后续打算多花点时间研究下,再来分享。

  1.3 Object.hasOwnProperty方法:返回一个布尔值表示该对象下是否直接具有该属性,不包含从原型继承的属性。

  

  1.4 jQuery.fn.init:初始化返回jQuery对象(包含元素,上下文,length,原型链的对象)

  jQuery.fn指向了jQuery的prototype,init是定义在prototype上的一个方法,用了接收两个参数(selector,context)。返回一个jQuery对象;

  1.5 三个正则含义

  rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g:匹配首尾空格(中文,英文,BOM等)

  rmsPrefix = /^-ms-/:匹配-ms-前缀,注意用在CSS3兼容浏览器IE前缀转换为javascript的属性,-ms-转换为ms

  rdashAlpha = /-([\da-z])/gi:匹配-数字和字母,有一个分组

  1.6 转驼峰的回调函数  

    fcamelCase = function(all, letter) {
            return letter.toUpperCase();
        };
    camelCase: function(string) {
            return string.replace(rmsPrefix, "ms-").replace(rdashAlpha,fcamelCase);
        }

  例如:

  

  待续……

发表评论

电子邮件地址不会被公开。 必填项已用*标注