例如,我有一个名为"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)