Javascript 元编程 : get name of currently executing function which was dynamically rewritten

标签 javascript function dynamic metaprogramming

我正在重写 javascript 的核心方法之一:

Element.prototype._removeChild = Element.prototype.removeChild;
Element.prototype.removeChild = function(){
    callback();
    this._removeChild.apply(this,arguments);
}

我想从正在动态重写的函数内部动态获取方法的名称(在本例中为“removeChild”)。我使用 arguments.callee.name 但它似乎没有返回任何内容,认为它只是一个匿名函数。如何获取匿名函数分配给的函数的名称?

最佳答案

一个匿名函数。您只是将此匿名函数分配给 Element.prototype.removeChild 属性,但这并没有使该属性成为该函数的名称。您可以将同一个函数分配给许多变量和属性,但无法知道调用它的名称。

但是,您可以为该函数指定一个可以作为 arguments.callee.name 访问的适当名称:

Element.prototype.removeChild = function removeChild() {
    ....
}

关于Javascript 元编程 : get name of currently executing function which was dynamically rewritten,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058610/

相关文章:

c# - 为什么 IntelliSense 认为我字典中的值是动态的?

android - 在小部件上动态更改 TextView 填充

php - 有没有更简洁的方法来编写这个避免包含

javascript - 有关 javascript 回调的详细信息

javascript - 使用下拉按钮更新分区统计图

javascript - 如何在三元运算符上导航 react 页面?

javascript - 为什么 for 循环不起作用?

function - 如何在 Elisp 中传递 lambda 表达式

c - C 中的函数调用者(回调)?

r - 如何对多列重复一个函数并将其组合在 data.frame 中并计算平均值?