Вопрос:
Могу ли я переопределить функции «по умолчанию» в 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 переполнение стека ... не бесконечный цикл –
его оба :) бесконечная рекурсия, приводящая к переполнению стека! его можно получить переполнение стека без бесконечной рекурсии: P – caleb
да, это правда. но давай. это закончилось бы из-за переполнения стека. это был бесконечный цикл, он не вызвал бы ошибку JS. –