我想找到一个Javascipt对象的类型(构造函数的名称),但我只是得到一个通用的" Object"用我试过的所有方法回来。我在网上搜索过,没有找到的Javascript方法对我有用。它总是只返回对象构造函数类型作为泛型" Object"。然而就是这样,当我在Chrome控制台中检查它时,正盯着我看。我有什么想法可以在JS中获取这些信息吗?
PS。我正在使用Browserify的要求来分离我的代码,如果这会产生影响。
我认为可能是因为Browserify加载require
代码的原因是因为这是我从Browserify加载的构造函数得到的输出:
以下是我手动创建构造函数所得到的:
无论如何,无论我如何创建构造函数var Prey = function() {}
vs var Prey = function Prey() {}
,Chrome开发工具似乎都知道构造函数的名称是什么,即使Javascript似乎不知道。也许这是因为他们可以用Javascript语言无法访问的方式检查虚拟机中的代码,但我想知道我是否遗漏了一些东西。 有没有人知道在Javascript中确定实例类型的另一种方法?
答案 0 :(得分:1)
当你执行function 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"