<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
//据说这就是组合模式了,就是逸带的感觉;
var $ = jQuery = window.$ =
function(){};
$.prototype =
{
addClass : function(value){
var classNames, i ,l , elem, setClass, c, cl;
if( $.ifFunction(value) ){
return $.each(
this,
function(j){
$(this).addClass( value.call(
this,j,
this.ClassName) );
})
};
if(value &&
typeof value === "string"
){
className =
this.className.split(/\b/
);
for(
var i=0, l=
this.length; i<l; i++
){
elem =
this[i];
//这个就是又一个each循环了;
if(elem.nodeType === 1
){
if( !elem.className && className.length === 1
){
elem.className =
value;
}else{
setClass = " " + elem.className + " "
;
for(c=0, cl=className.length; c<cl; c++
){
if( !!
setClass.indexOf( className[c] ) ){
setClass += className[c] + " "
;
}
};
setClass +=
value;
elem.calssName =
$.trim( setClass );
}
}
}
};
return this;
}
};
//facade__外观模式;
$.ajax =
function(){
};
$.ajax.setting.xhr = window.ActiveXObject ?
activeObject() : createStndardXHR();
function createStandardXHR(){
try{
return new window.XMLHttpRequest;
}catch(e){};
};
function activeXObject(){
try{
return new window.activeXObject("Microsoft","XMLHTTP"
);
}catch(e){}
};
//jQ中的观察者模式(p/s);
//使用包装包装一个jQ出来;
(
function($){
var o = $({});
// 让o有了jq的继承,可以使用jq的工具方法和函数
$.subscribe =
function(){
o.bind.apply(o,arguments);
};
$.unsubscribe =
function(){
o.unbind.apply(o,arguments)
};
$.publish =
function(){
o.trigger.apply(o,arguments)
}
}(jQuery))
// 注意:这里面使用的是apply 而不是 call; apply可以直接传arguments;
</script>
</body>
</html>
转载于:https://www.cnblogs.com/diligenceday/p/3436678.html
相关资源:JAVA上百实例源码以及开源项目