我怎么能找到一个JavaScript函数的名称



例如,我有一个名为"Apples()"以及一个名为"Pears()"的函数。这些将通过各种调用来实例化,例如new Apples()或new Pears()。所有这些新实例都将存储在一个数组中。

稍后,我想在数组中扫描"Apples"的实例,但我找不到如何识别我正在检索的对象。

我通过声明这一点克服了这个困难。type = "苹果"或者这个。type = "Pears"但这似乎是一个相当笨拙的解决方案,特别是当Google Chrome调试器能够识别对象类型时。

建议的解决方案

"var prot = Object.prototype.toString.call(arrayEntry(i)) 

产生[object object]——不幸的是一点用都没有。

运行良好:

你可以使用

Object.getPrototypeOf() 

函数获取原型。构造函数将在原型的构造函数属性中,你可以从name属性中获得它的名字。

function getClassName(obj) {
return Object.getPrototypeOf(obj).constructor.name;
}

可以使用Object.getPrototypeOf()函数获取原型。构造函数将在原型的constructor属性中,并且您可以从name属性中获得它的名称。

function getClassName(obj) {
return Object.getPrototypeOf(obj).constructor.name;
}
function Apples() {}
function Oranges() {}
a = new Apples();
o = new Oranges();
console.log(getClassName(a));
console.log(getClassName(o));

您可以这样读取function对象的name成员:

const test = () => console.log(test)
console.log(test.name)

相关内容

  • 没有找到相关文章