問題:
我可以重寫JavaScript中的「默認」功能嗎?在Javascript中重寫默認函數?
背景:
搞清楚,我不得不存儲在localStorage
對象之間的碰撞之後,我決定,我應該申請一個前綴的所有鍵,以避免碰撞。很明顯,我可以創建一個包裝函數,但是直接覆蓋默認的localStorage.getItem
& localStorage.setItem
以考慮我的前綴會更加簡潔。
我的例子完全消滅Firefox,因爲它遞歸調用自己,所以它顯然不是靠近解決方案。也許它澄清了我想要完成的事情。
代碼:
Storage.prototype.setItem = function(key, value) {
this.setItem("prefix"+key, value);
};
Storage.prototype.getItem = function(key, value) {
return this.getItem("prefix"+key);
};
+1棧溢出..不是無限循環 – 2012-02-13 21:54:06
其兩個:)無限遞歸導致堆棧溢出!它可能得到沒有無限遞歸的堆棧溢出:P – caleb 2012-02-13 21:55:52
是的,這是真的。但是來吧。這會因堆棧溢出而失敗。它是一個無限循環,它不會產生JS錯誤。 – 2012-02-13 21:58:12