jQuery源码分析(4) - 如何处理$的命名冲突问题

 

把以前看的jQuery源码的分析笔记搬到博客上,重温经典,也是为了方便查询。

 

将源码中的逻辑精简如下:

var _$ = window.$;
var jQuery = function(){};
jQuery.extend({
  noConflict: function(deep){
    if (window.$ === jQuery) {
      window.$ = _$;
    }
    if (deep && window.jQuery === jQuery){
      window.jQuery = _jQuery;
    }
    return jQuery;
  }
});
加载jquery和另外一个也是用$的库之后,
var $j = jQuery.noConflict();   // 定义一个新的名称
$j(function(){});
如果想在jQuery里继续使用$, 只需要将$作为参数传入,
jQuery.noConflict();
jQuery(function($){
  $('div').click(function(){ });
});

 

posted @ 2019-09-11 11:35  贾各布  阅读(163)  评论(0编辑  收藏  举报