Я ищу эквивалент Ruby "blah".is_a?(String)
Objective-C [@"blah" isKindOfClass:[NSString class]]
Каков самый простой способ проверить членство в классе в coffeescript?
Ответ 1
Вы хотите проверить, сходит ли объект из определенного класса? Затем вам понадобится ключевое слово instanceof
. (Это не что-то добавленное CoffeeScript, это часть JavaScript.) Классы CoffeeScript настроены так, что если вы пишете
class A
class B extends A
class C extends B
то верно следующее:
(new A) instanceof A
(new B) instanceof B and (new B) instanceof A
(new C) instanceof C and (new C) instanceof B and (new C) instanceof A
Кроме того, любой объект вернет true
для instanceof Object
.
Если вы хотите протестировать конкретный класс, в котором объект является экземпляром, используйте .constructor
. Например,
(new B).constructor is B
или если вы хотите использовать строку,
(new B).constructor.name is 'B'
Ответ 2
Мне кажется неправильным создать экземпляр класса. Вы никогда не знаете, какие параметры может ожидать конструктор.
Так что я придумал следующее:
class A
class B extends A
console.log B.__super__ is A.prototype# => true