对jquery的conflict方法的解读

源码:

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出去,外面用一个变量接纳就是。

转载于:https://www.cnblogs.com/zzcflying/archive/2012/08/09/2630168.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值