测试coffeescript中的类成员资格的最简单方法是什么?

时间:2011-05-09 06:55:10

标签: coffeescript

我正在寻找相当于Ruby的"blah".is_a?(String) Objective-C [@"blah" isKindOfClass:[NSString class]]

2 个答案:

答案 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