我正在重写javascript的核心方法之一:
Element.prototype._removeChild = Element.prototype.removeChild;
Element.prototype.removeChild = function(){
callback();
this._removeChild.apply(this,arguments);
}
我想从动态重写的函数内部动态获取方法的名称(在本例中为“removeChild”)。我使用arguments.callee.name
但似乎没有返回任何内容,认为它只是一个匿名函数。如何获取分配匿名函数的函数的名称?
答案 0 :(得分:5)
是一个匿名函数。您只是将此匿名函数分配给Element.prototype.removeChild
属性,但这不会使该属性成为函数的名称。您可以为许多变量和属性分配相同的函数,并且无法知道调用它的名称。
但是,您可以为该功能指定一个正确的名称,您可以将其作为arguments.callee.name
:
Element.prototype.removeChild = function removeChild() {
....
}