我想找到一个Javascipt对象的类型(构造函数的名称),但是我一直使用我尝试过的所有方法来获得一个通用的“对象”。我已经在网上搜索过,但是还没有找到适合我的Javascript方法。它始终只是将对象构造函数类型返回为通用“对象”。在那里,当我在Chrome控制台中检查它时,正盯着我看。有什么想法可以在JS中获取这些信息吗?

PS。如果有区别,我正在使用Browserify的要求分隔我的代码。

我认为这可能是因为Browserify如何加载require代码的原因,因为这是我从Browserify加载的构造函数中获得的输出:

这是我从手动创建构造函数得到的结果:

无论如何,无论我如何创建构造函数var Prey = function() {}var Prey = function Prey() {},Chrome开发人员工具似乎仍然知道构造函数的名称,即使Java似乎并不知道。也许这是因为他们可以使用Java语言无法访问的方式检查虚拟机中的代码,但是我想知道是否丢失了某些内容。 有人知道在Javascript中确定实例类型的另一种方法吗?

最佳答案

执行function Prey(){};时,您看到的Prey是Prey,因此函数名称为Prey。如果将Prey定义为var Prey = function(){};,则函数名称为“”;

因此,基本上,如果要使用函数名称,则必须为构造函数命名。 var Prey = function Prey(){};
编辑:或可能您对此做了变体:

var A = function NAMED(){};
var B = function(){};
B.prototype = Object.create(A.prototype);
var o = new B();

> o
< B {};

> o.constructor.name
< "NAMED"

09-18 23:52