这是一个代码示例
class person
constructor: (@name, @age) ->
bob = new person("bob", 11)
if person?
alert "yes!"
else
alert "no"
在这里,我测试一个人类是否被实例化,并警告“是的!”喜欢它应该。因为鲍勃是一个人,并且被实例化了。
但是在这里:
class person
constructor: (@name, @age) ->
if person?
alert "yes!"
else
alert "no"
我希望此提醒“不”,因为没有人被实例化,但它仍然警告“是的!”
那么测试一个类是否已经实例化的正确方法是什么。
澄清:
我不想测试看看鲍勃是什么。我想看看是否有任何形式的人都不知情。
答案 0 :(得分:1)
您正在测试是否定义了person类。这将实现你想要的。
class person
constructor: (@name, @age) ->
person.prototype.instantiated = true
if person.prototype.instantiated
alert "yes!"
else
alert "no"
答案 1 :(得分:1)
与上面的答案相同,但有更多类似coffeescript的语法:
class person
constructor: (@name, @age) -> person::instantiated = yes
bob = new person "bob", 11
if person::instantiated
alert "yes!"
else
alert "no"