【读jQuery源码】二

来源:互联网 发布:域名跳转服务 编辑:程序博客网 时间:2024/06/06 20:55

上一次到了 jQuery 返回的是下面的函数的执行结果

// 非 CommonJS 环境function( typeof window !== "undefined" ? window : this) {  // 删除}// CommonJS 环境function( typeof window !== "undefined" ? window : this, true) {  // 删除}

接下来的代码都来自上面的函数体内。

函数体的最后是

if ( typeof noGlobal === strundefined ) {    window.jQuery = window.$ = jQuery;}return jQuery;

外面的判断中的 strundefined

var strundefined = typeof undefined;

所以 strundefined 就是字符串 “undefined”

所以,如果是 CommonJS 环境则返回 jQuery对象,如果不是 CommonJS 环境则执行

window.jQuery = window.$ = jQuery;

所以$符号就是jQuery对象

$和其他 js 库冲突的解决方法

var    _jQuery = window.jQuery, // undefined    _$ = window.$; // undefinedjQuery.noConflict = function( deep ) {    if ( window.$ === jQuery ) {        window.$ = _$; // = undefined    }    if ( deep && window.jQuery === jQuery ) {        window.jQuery = _jQuery; // = undefined    }    return jQuery;};

如果调用

jQuery.noConflict()

window.$ = undefined

如果调用

jQuery.noConflict(true)

window.$ = undefinedwindow.jQuery = undefined

此时只能使用返回的 jQuery 对象

var j = jQuery.noConflict(true)
0 0