代码之家  ›  专栏  ›  技术社区  ›  Marc

如何在javascript中检索构造函数的名称?

  •  27
  • Marc  · 技术社区  · 14 年前

    假设以下程序:

    var C = function() { };
    x = new C();
    

    表达式 x instanceof C 收益率是真的,所以 x 必须知道它是由函数构造的 C . 有办法取回这个名字吗 C 直接来自 X ?

    (在我手头的问题中,我有一个原型层次结构,在我的应用程序中实现可能的信号。我必须访问一个信号的类型,该类型应等同于用于创建该信号的构造函数。)

    6 回复  |  直到 6 年前
        1
  •  31
  •   sje397    14 年前

    function C() { }
    
    var x = new C();
    
    console.log(x.constructor.name);
    

    x.constructor C true

        2
  •  9
  •   phatmann Trevor    14 年前

    obj.constructor.toString().match(/function (\w*)/)[1];
    

    on this page

    function Foo() {}
    Foo.prototype.type = 'Foo';
    

        3
  •  3
  •   Andy E    14 年前

    x.constructor C

    function C() { };
    x = new C();
    

    x.constructor.toString() x.constructor.name

    https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/name

        4
  •  1
  •   Wilt    8 年前

    var C = function C() { };
    

    C

    x = new C();    
    
    console.log(x.constructor.name); // output: C
    
        5
  •  0
  •   RichN    14 年前

        6
  •  -1
  •   Thomas Hagström    6 年前

    this.default.name