jQuery源码笔记——准备

将变量局部化

作为一个库首要解决的问题就是防止影响全局的变量。自执行匿名函数可以很好的实现这一点。

传入window,undefiend是将全局变量改为局部变量,根据作用域链访问原理,访问更快一些,。undefined不传值实际就是传入undefined;

(function(window, undefined) {

    var jQuery = function() {}

    // ...

    window.jQuery = window.$ = jQuery;

})(window);

无new实例化

function foo()

{   

   // 如果未使用new,重新调用。

   if ( !(this instanceof arguments.callee) )

      return new arguments.callee();

}

判断页面是否加载完成

document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. 

function subSomething() 

{ 

    if(document.readyState == “complete”) //当页面加载状态 

    alert(1)

} 

让出window.$控制权

//保存之前的$

var _$ = window.$;

//假设定义变量$指向库jQuery

window.$ = "I am jQuery";

//还原初始$状态

var noConflict = function() {

    window.$ = _$

}

console.log($)//I am jQuery

noConflict()

console.log($)//undefiend

 

你可能感兴趣的:(jquery)