Как я могу найти этот класс объекта после его создания?
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
Просто измените == на instanceof
==
instanceof
if(cat instanceof Cat)
Если вы хотите узнать имя типа определенного объекта (именно это я и искал, когда нашел этот вопрос), вы можете использовать синтаксис {object}.constructor.name
{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
Способ сделать это - проверить тип объекта, используя
или
typeof
т.е.
if (obj instanceof Awesomeness){ //doSomethingCrazy(); }
Так же, как вJavaScript, Coffee Script не предоставляет никаких абстракций над этими функциями
AFAIU, общее решение будет использовать @constructor - Полезно, когда вы не знаете или не хотите указывать имя класса.
@constructor
Было даже обсуждение относительно создания @@ ярлыка для него.