Я переписывание один из основных методов в JavaScript:Javascript метапрограммирование: получить имя исполняемой в данный момент функции, которая была динамически переписана
Element.prototype._removeChild = Element.prototype.removeChild;
Element.prototype.removeChild = function(){
callback();
this._removeChild.apply(this,arguments);
}
Я хочу, чтобы динамически получить имя методы (в данном случае «RemoveChild») изнутри динамически переписываемой функции. Я использую arguments.callee.name
, но, похоже, ничего не возвращает, думая, что это просто анонимная функция. Как получить имя функции, которой назначена анонимная функция?
Javascript не имеет методов. Только функции, назначенные свойствам. В этом случае «Element.prototype.removeChild» - это одно свойство, в котором оно назначено, оно также может быть назначено в другое место одновременно. Это не имя функции, у нее нет имени. Функция не знает, сколько свойств ей назначено или какие свойства ей назначены. – Esailija