Есть ли эквивалент __name__ Python для объекта Javascript - PullRequest
3 голосов
/ 11 августа 2011

Как мне найти строковую форму имени объекта в javascript?

Ответы [ 3 ]

5 голосов
/ 11 августа 2011
function bar(){};
console.log(bar.name);

// Печатает 'bar'

Работает только для функций, но не для объектов любого другого типа.

Для класса CoffeeScript вы можете сделать это

class Foo
f = new Foo
console.log f.constructor.name
#Prints 'Foo'
1 голос
/ 11 августа 2011
function A() {};
var a = new A();
a.constructor.name // => "A"
1 голос
/ 11 августа 2011

Если функция определена с помощью function foo() {…}, вы можете получить ее имя с помощью foo.toString(). Например:

> window.alert.toString()
"function alert() { [native code] }"

Однако, если функция определена анонимно (например, var foo = function() {…}), то получить имя foo.

невозможно.

Редактировать : оказывается, к имени можно получить доступ через .name (см. Ответ Питера Лайонса), поэтому использование .toString() было бы глупо (хотя я оставлю здесь свой ответ, как это возможно быть поучительным).

...