我有一些原型功能添加到Object
,在我看來在某些情況下是實用的。不過,我注意到當我執行$ .get時,原型函數被作爲數據成員處理,並且被髮送爲http://...?prototypefunc=false
。
這是無用的,因爲我不提供這些作爲數據成員,但他們是被添加到查詢字符串。
確切的說,我有這樣的代碼:
Object.prototype.in = function() {
for(var i=0; i<arguments.length; i++)
if(arguments[i] == this) return true;
return false;
}
$.get('http://localhost/test.php', {'test': 'foo'}, function(text) { });
相應的URL結構是:
http://localhost/test.php?test=foo&in=false
我怎樣才能避免這種情況?
這就是爲什麼不擴展Object.prototype的原因。 – 2011-01-29 23:18:45
爲什麼不能?它在例如`foo.in(1,2,3)`來檢查foo是否等於1,2或3. – pimvdb 2011-01-29 23:19:25
@pimvdb:因爲它可能有副作用(如你所見)。 `Helper.in(this,[1,2,3])``不是更多的代碼。否則,解決您的問題的唯一方法是編輯jQuery代碼。 – 2011-01-29 23:21:25