我想编写一个属于location类的查询解析方法,但是没有运气
window.location.prototype
或
window.prototype
我的目标是做一些事情:
window.location.prototype.parseQuery = function(key){
//run a test on this.search to see if it contains key and return the val
}
窗口是不可变的吗?或者我只是没有正确引用它?
TIA
答案 0 :(得分:2)
当对象已经存在且只有其中一个时,您不需要原型。您只需将方法直接添加到对象即可。
window.parseQuery = function() { /* your code here */};
或
window.location.parseQuery = function() { /* your code here */};
此外,window
对象是浏览器中的全局对象,因此任何全局函数都已经是window
对象上的方法。
答案 1 :(得分:2)
您应该直接在window.location
window.location.parseQuery = function(key){
//run a test on this.search to see if it contains key and return the val
}
prototype
是Function的属性,而window.location
不是函数。
答案 2 :(得分:1)
呸!在询问之前应该再运行一些测试...
答案是Window.prototype
。适用于Chrome,尚未在其他地方进行过测试。
根据给出的答案,似乎没有必要在Window上进行原型设计,因为它是一个单一的全局对象。所以这是我的解决方案......
window.location.getQueryItem = function(key){
if(this.search.indexOf(key + "=") != -1){
reg = new RegExp(key + '=(.*?)(\&|$)', 'i');
return this.search.match(reg)[1];
}
return null;
}