您的位置:首页 > Web前端 > JQuery

jquery源码学习-初始(1)

2014-08-16 14:50 218 查看
  最近几天一直在研究jquery源码,由于水平太低看得昏头转向。本来理解的也不是很深刻,下面就用自己的想法来说下jquery是如何定义构造函数初始化的。如果有什么不对的地方,希望个位高手指出。

  首先要了解下什么时候自执行匿名函数 ,它的用途就是 相当于创建一个命名空间,只要把自己所有的代码写在这个特殊的函数包装内,外部不能访问,除非你允许。

基本格式
(function(){
//代码
})();


(function(){
  var a = 10;
function $(){
  alert(a);
}
})();

$(); // 靠居然报错,因为$方法为局部变量,外部是无法访问。


尼玛那要怎么访问啊?

其实我们可以把这个$函数挂载到一个全局变量上

(function(){

var a = 10;

function $(){
alert(a);
}

//对外接口,把$挂载到window下
window.$ = $;

})();

$(); //果断打印出10


jQuery其实还加上了2个参数

 

(function(window, undefined){

console.log(window);

})(window);

第一个参数为window对象。
1.其实主要是为了优化作用域查找速度。
如果不传window参数,自执行匿名函数内使用window对象,此作用域并没有找到window对象,所以会向上一层作用域查找(即全局)。
2.然后可以传参数可以改名字,详见压缩版jQuery库。

第二个参数为undefined。
1.传这个参数主要是有些低版本浏览器undefined可以修改
var undefined = 10;
alert(undefined);
ie7,8下弹出10,其他浏览器弹出10,所以传个undefined参数,防止找到作用域外可能被改过的undefined
2.与window参数同理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: