Подтвердить что ты не робот

Получить тип класса в CoffeeScript

Как я могу найти этот класс объекта после его создания?

class Cat
  constructor: (@name) ->

class Dog
  constructor: (@name) ->

cat = new Cat "Kitty"
dog = new Dog "Doggy"

if (cat == Cat)  <- I want to do something like this
4b9b3361

Ответ 1

Просто измените == на instanceof

if(cat instanceof Cat)

Ответ 2

Если вы хотите узнать имя типа конкретного объекта (именно это я и искал, когда нашел этот вопрос), вы можете использовать синтаксис {object}.constructor.name

например

class Cat
    constructor: (@name) ->

  class Dog
    constructor: (@name) ->

  cat = new Cat()
  dog = new Dog()

  console.log cat.constructor.name
  console.log dog.constructor.name

который выведет

Cat
Dog

Ответ 3

Способ сделать это - проверить тип объекта с помощью

instanceof

или

typeof

то есть.

if (obj instanceof Awesomeness){
//doSomethingCrazy();
}

Как и в JavaScript, Coffee Script не обеспечивает абстракции над этими функциями

Ответ 4

AFAIU, общее решение будет использовать @constructor - Полезно, если вы не знаете или не хотите указывать имя класса.

Было даже обсуждение относительно того, как сделать @@ярлык для него.