我正在寻找相当于Ruby的"blah".is_a?(String)
Objective-C [@"blah" isKindOfClass:[NSString class]]
答案 0 :(得分:36)
您想测试对象是否来自特定类吗?然后,您需要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'
答案 1 :(得分:0)
创建类的实例对我来说感觉不对。你永远不知道,构造函数可能期望什么参数。
所以我想出的是:
class A
class B extends A
console.log B.__super__ is A.prototype# => true