读jQuery源码之一

从这篇开始,我会从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);
 }

例如:

待续……

作者:张雪飞
出处:https://zhangxuefei.site/p/39
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

发表评论

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