<script type="text/javascript">
//创建命名空间:jSite.Import(namespace)
//创建命名空间的同时执行方法过程和实例对象
//引用:var o=jS.using(namespace,class);或var o=jS.using(namespace);
//实例:var o=jS.using('System.Images');
(function(window, undefined) {
var document = window.document, navigator = window.navigator, location = window.location;
var jSite = (function() {
// 构建jSite对象
var jSite = function(selector, context) {
return new jSite.fn.init(selector, context, rootjSite)
}
jSite.fn = jSite.prototype = {
constructor: jSite,
init: function(selector, context, rootjSite) {//jSite是一个函数,函数返回值是一个对象,并且有很多实例方法,这些方法用来操作相关节点
},
jsite: "1.1.1",
length: 0,
size: function() {
return this.length;
}
};
jSite.fn.init.prototype = jSite.fn;
//___________________________________工厂 开始______________________________________
jSite.extend = jSite.fn.extend = function() {//静态方法-工厂(合并对象直接量为target对象)
var target = arguments[0] || {}, // 第一个参数是目标
i = 1, length = arguments.length, deep = false, options;
if (target.constructor == Boolean) {// 第一个参数是bool型的
deep = target;// 深度copy
target = arguments[1] || {};// target指向第二个参数
i = 2;
}
if (typeof target != "object" && typeof target != "function")target = {};// target 是string 型的或?,则设为空对象
if (length == i) {// 只有一个参数?或deep copy 时,两个参数
target = this;// 目标为this
--i;
}
for (;i < length; i++)
if ((options = arguments[i]) != null)
for (var name in options) {
var src = target[name], copy = options[name];//复制对象
if (target === copy)// 防止死循环
continue;
if (deep && copy && typeof copy == "object" && !copy.nodeType)// 深度复制处理,最深为元素
target[name] = jQuery.extend(deep, src || (copy.length != null ? [] : {}), copy);
else if (copy !== undefined)// 直接复制
target[name] = copy;
}
return target;//返回一个新的target对象
};
jSite.Import = function() { //绑定命名空间[创建命名空间]
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=jSite;
for (j=(d[0] == "jSite") ? 1 : 0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};
jSite.using=function(n,o,override){//命名空间与静态方法合并
var ns=jSite.Import(n),obj={};
if(typeof(o) != 'object'||o == 'undefined')o=ns;
ns=function(){};
for(var i in o){
if(o.hasOwnProperty(i) && (!obj.hasOwnProperty(i) || override))
obj[i] = o[i];
}
ns.prototype=obj;
return new ns;
}
//____________________________________工厂 结束____________________________________________
//扩展jSite对象方法
jSite.fn.extend({
method: function() {
alert("静态方法扩展的实现");
}
});
jSite.extend({
ext:function(){
alert("静态方法的实现");
}
});
jSite.System={
Images:{
img:'图片方法的实现'
},
Table:{
tbl:'表格方法的实现'
}
}
//返回jSite实例对象
return jSite
})();
window.jSite = window.jS = jSite;
if (typeof define === "function" && define.amd && define.amd.jSite) {
define("jSite", [],
function() {
return jSite
})
}
})(window);
var o=jSite.using('System.Images')
alert(o.img);
</script>
下载附件