获取存储在变量中的方法的名称

时间:2015-08-05 14:42:17

标签: javascript inheritance methods

我在获取存储在变量中的方法的名称时遇到了一些麻烦......以下是我想要的例子:

Function MyObject(){
    this.actualMethod = this.thatName;
}

MyObject.prototype.thatName = function(){}

MyObject.prototype.getActualMethodName = function(){
    return this.actualMethod.name; /* This doesn't work since the function itself is anonymous, so this.actualMethod.name doesn't work... I want it to return "thatName" */
}

我试图用我的控制台浏览原型,徒劳无功......有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要命名该功能:

MyObject.prototype.thatName = function thatName() {};

或者,如你所说,你可以在原型中找到它的名字(但我不建议你这样做):

for (var key in MyObject.prototype) {
  if (MyObject.prototype[key] === this.actualMethod) {
    return key;
  }
}

但你为什么需要这个呢?也许可以有更好的解决方案。