Переименовать уже существующую функцию не так-то просто. Но возможно:
// при помощи этой функции будем переименовывать
Object.defineProperty(
Object.prototype,
'renameProperty',
{
writable : false, // Cannot alter this property
enumerable : false, // Will not show up in a for-in loop.
configurable : false, // Cannot be deleted via the delete operator
value : function (oldName, newName) {
// Check for the old property name to
// avoid a ReferenceError in strict mode.
if (this.hasOwnProperty(oldName)) {
this[newName] = this[oldName];
delete this[oldName];
}
return this;
}
}
);
// сам пример. переименовываем функцию NIRV.repaintMain в NIRV.repaintMain2
NIRV.renameProperty("repaintMain", "repaintMain2");
NIRV.repaintMain = function() {
NIRV.repaintMain2();
$("li.task.completed").each(AddReaddButton);
};
Этот вариант может не везде работать. Я его взял здесь. Там есть и другая функция для переименования.
Комментариев нет:
Отправить комментарий