jQuery源码分析笔记
- js自调用匿名函数的两种写法:
1
2
3
4
5
6
7(function(window, undefined){
// code
})(window);
(function(window, undefined){
// code
}(window));
- undefined能够被重写,赋予新的值。
1
2undefined = "now it's defined";
alert( undefined );
| 浏览器 | 测试结果 | 结论 |
|---|---|---|
| ie | now it’s defined | 可以改变 |
| ff | undefined | 不能改变 |
| chrome | now it’s defined | 可以改变 |
| opera | now it’s defined | 可以改变 |
- jQuery.fn.init.prototype = jQuery.fn = jQuery.prototype
jQuery.fn.init的功能是对传进来的selector参数进行分析,进行各种不同的处理,然后生成jQuery对象。
| 类型(selector) | 处理方式 |
|---|---|
| DOM元素 | 包装成jQuery对象,直接返回 |
| body(优化) | 从document.body读取 |
| 单独的HTML标签 | document.createElement |
| HTML字符串 | document.createDocumentFragment |
| HTML字符串 | document.createDocumentFragment |
| #id | document.getElementById |
| 选择器表达式 | $(…).find |
| 函数 | 注册到dom ready的回调函数 |
- jQuery.extend = jQuery.fn.extend
合并两个或更多对象的属性到第一个对象中。1
jQuery.extend([deep], target, object1, [objectN])