(function () {
var XP = window.XP = function () { return new XP.fn.init();
};
XP.fn = XP.prototype = {
init: function () { return this; },
/**
* 获取通过URL传递的参数值
* @param {String} name 参数的名称
*/
getPara: function (name) {
var r = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)");
var m = location.href.match(r);
return (!m ? "" : m[2]);
}
}; XP.fn.init.prototype = XP.fn;
})();我想用的时候可以这样
XP().rootURL='某网址';
alert(XP().rootURL);
那么rootURL这个变量应该定义在哪里,才可以这样用?
XP.prototype = {
rootURL: '某网址',
init: //
}
(function () {
var XP = window.XP = function () { return new XP.fn.init();
};
XP.fn = XP.prototype = {
init: function () {
this.rootURL = 'default';
return this;
},
changeRootURL: function(v){
this.rootURL = v;
return this;
},
/**
* 获取通过URL传递的参数值
* @param {String} name 参数的名称
*/
getPara: function (name) {
var r = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)");
var m = location.href.match(r);
return (!m ? "" : m[2]);
}
}; XP.fn.init.prototype = XP.fn;
})();
alert(XP().changeRootURL(123).rootURL)
alert(XP().rootURL);这个意思?
alert(XP() === XP()) // false
jquery是不是也有你说的这种情况?其实我最早想实现的效果是直接写XP.,不用写XP().
init: function () {
this.rootURL='.aspx';//就这么简单
return this;
},
/**
* 获取通过URL传递的参数值
* @param {String} name 参数的名称
*/
getPara: function (name) {
var r = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)");
var m = location.href.match(r);
return (!m ? "" : m[2]);
}
};
这叫“盲目的模仿”吗? 不同意你的这句。看来你的jsoop也不整么滴
alert(XP().rootURL);//失败
(function(w) {
var xp = function() {
return new xp.fn.init();
}
xp.rootURL = location.href + '?a=b';
xp.fn = xp.prototype = {
init: function() {
return this;
},
getParam: function (name) {
var r = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)");
var m = xp.rootURL.match(r);
return (!m ? "" : m[2]);
}
};
xp.fn.init.prototype = xp.fn;
if(typeof(w.xp) == 'undefined') {
w.xp = xp;
}
})(window);alert(xp.rootURL);
alert(xp().getParam('a'));
xp.rootURL = location.href + '?a=c';
alert(xp.rootURL);
alert(xp().getParam('a'));