jQuery中的任何功能的实现原理分解
jQuery提供的任何功能解决了变量冲突很好的问题,无论是美元或jQuery冲突是可以解决的。接下来,我们将分析jQuery的冲突处理。
先看看jQuery源代码的任何实施:
函数(窗口,未定义){
VaR
在jQuery覆盖时映射到jQuery
_jquery = window.jquery,
在覆盖重写的情况下,在map $
_美元美元=窗口,
JQuery.extend({
任何:功能(深){
如果(窗口$ = jQuery){
美元美元= _窗口;
}
如果(深window.jquery = jQuery){
window.jquery = _jquery;
}
返回jQuery;
}
})
}(窗口)
这里jquery.extend是一种扩展jQuery的静态属性,它可以被看作是一个直接的方法来添加任何jQuery。在匿名函数,分别定义的内部变量,用来存储_ _jquery美元window.jquery和窗口。美元,用来做这是之前的内部变量除了两个全局变量jQuery操作使用,以防止后面的两变量减少冲突operation.noconflict可以处理两变量$和jQuery的冲突,与美元的违约处理,通过在一个真实的参数,和处理jQuery冲突的情况。
窗口。$ = jQuery是如果等于用来确定全局变量等于jQuery,恢复全局变量jQuery变量美元运行前(存储在_美元)的内部变量;深window.jquery = jQuery的深度时,jQuery和jQuery开放内部冲突处理全局变量,全局jQuery降低到之前的情况,判断窗口。$ jQuery和jQuery jQuery = =窗口。保护的意义已定义的变量不可改写为如下代码:
jQuery库的引入
var;
VaR JQ = jquery.noconflict();
这是一行;
var j = jq.noconflict(真的);
console.log($); / /这里如果没有窗口= = =。美元jQuery这样的判断,那么美元将等于定义代替字符串。
console.log(jQuery); / /同上,如果没有判断的窗口。jQuery = = = jQuery,jQuery定义的重新定义将覆盖。
整个运行过程参与了下面的图表:
任何回报的jQuery库里面的jQuery构造器,以及使用美元。