源码:

noConflict: function( deep ) {
    if ( window.$ === jQuery ) {
        window.$ = _$;
    }

    if ( deep && window.jQuery === jQuery ) {
        window.jQuery = _jQuery;
    }

    return jQuery;
},
引入jQuery类库后,闭包外面的window.$与window.jQuery都储存着一个函数,它是用来生成jQuery对象或在domReady后执行里面的函数的。
回顾我上一篇文章,那里有写什么时候给它们进行赋值。在还没有把function赋给它们时,_jQuery与_$已经被赋值了,因此它们俩的值一定必然是undefined。
因此这种放弃对$和jQuery的控制权的技术很简单,就是用undefined把window.$里面的jQuery系的函数清除掉,这样别的框架就可以使用它们了。
在window.$ = _$。相当于是window.$ = undefined。
如果连你的程序也有一个叫jQuery的东西呢,jQuery可以大方地连这个也让渡出去,这时就要为noConflict添加一个布尔值,为true。
但我们必须用一个东西要接纳jQuery对象与jQuery的入口函数,闭包里面的东西除非被window等宿主对象引用,否则就是不可见的,因此我们把闭包里面的jQuery return出去,外面用一个变量接纳就是。

相关文章:

  • 2022-01-21
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-21
  • 2022-02-11
  • 2021-12-09
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2021-06-04
相关资源
相似解决方案