如何从方法中获取JavaScript类/实例方法的名称?

时间:2016-08-25 19:08:59

标签: javascript function class instance

我正在尝试获取JavaScript实例或类方法的名称(在客户端/浏览器JS中),同时对AMD模块使用以下OOP样式(用于RequireJS):

define([...], function(...) {
  var FooBar = function() {
    //Constructor code...
  };

  FooBar.foo = function() {
    //This is a FooBar class method named "foo". How do I get its name from here?
    //...
  };

  FooBar.prototype.bar = function() {
    //This is a FooBar instance method named "bar". How do I get its name from here?
    //...
  };
});

我已经看到各种帖子解释了如何在命名函数的情况下执行它,例如,函数foobar(){...},但不是在分配了匿名函数的情况下,例如,foobar = function(){...}。

后者与此相关,除非可以使用命名函数重写上述内容。

我宁愿不回复一些命名方案约定,例如foobar = function foobar_extra_name(){...},因为这涉及命名函数两次。此外,即使这是可能的,因为点符号,它仍然不可能像FooBar.prototype.bar = function FooBar.prototype.bar(){...}那样做,所以它不会非常有帮助。

对此有何想法?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您确实可以使用命名函数重写代码,如下所示:

var FooBar = function FooBar() {
  //Constructor code...
};

FooBar.foo = function foo() {
  //This is a FooBar class method named "foo". How do I get its name from here?
  //...
};

FooBar.prototype.bar = function bar() {
  //This is a FooBar instance method named "bar". How do I get its name from here?
  //...
};