1

这是一个代码示例

class person 
  constructor: (@name, @age) ->

bob = new person("bob", 11)

if person?
  alert "yes!"
else
  alert "no"

在此,我测试一个人类是否被实例化,它会提示“是!” 就像它应该的那样。因为 bob 是一个人,并且被实例化了。

但在这里:

class person 
  constructor: (@name, @age) ->

if person?
  alert "yes!"
else
  alert "no"

我希望它提醒“不”,因为没有人被实例化,但它仍然提醒“是!”

那么测试一个类是否已实例化的正确方法是什么。

澄清:

我不想测试,看看鲍勃是什么。我想看看是否有任何形式的人被实例化。

4

2 回答 2

1

您正在测试是否定义了 person 类。这将完成你想要的。

class person 
  constructor: (@name, @age) ->
    person.prototype.instantiated = true

if person.prototype.instantiated
  alert "yes!"
else
  alert "no"
于 2013-01-24T19:41:57.367 回答
1

与上面的答案相同,但具有更多类似咖啡脚本的语法:

class person 
  constructor: (@name, @age) -> person::instantiated = yes

bob = new person "bob", 11

if person::instantiated
  alert "yes!"
else
  alert "no"
于 2013-01-24T20:38:20.943 回答