Как я могу найти этот класс объекта после его создания?
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
Ответ 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 - Полезно, если вы не знаете или не хотите указывать имя класса.
Было даже обсуждение относительно того, как сделать @@ярлык для него.