如何在javascript中找到对象名称的字符串形式?
答案 0 :(得分:5)
function bar(){};
console.log(bar.name);
//打印'bar'
这仅适用于函数,不适用于任何其他类型的对象。
对于CoffeeScript类,您可以执行此操作
class Foo
f = new Foo
console.log f.constructor.name
#Prints 'Foo'
答案 1 :(得分:1)
如果使用function foo() {…}
定义了某个功能,则可以使用foo.toString()
获取其名称。例如:
> window.alert.toString()
"function alert() { [native code] }"
但是,如果函数是匿名定义的(例如,var foo = function() {…}
),那么就无法获得名称foo
。
修改:事实证明可以通过.name
访问该名称(请参阅Peter Lyons的回答),因此使用.toString()
会很愚蠢(虽然我会留下我的回答这里,因为它可能是有益的。)
答案 2 :(得分:1)
function A() {};
var a = new A();
a.constructor.name // => "A"