繁体   English   中英

如何查看类是否已实例化

[英]How to see if a class has been instantiated

这是一个代码示例

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"

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

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

澄清:

我不想测试,看看鲍勃是什么。 我想看看是否已实施任何形式的人员。

您正在测试以查看是否定义了人员类。 这将完成您想要的。

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

if person.prototype.instantiated
  alert "yes!"
else
  alert "no"

与上面的答案相同,但具有更多类似Coffeescript的语法:

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

bob = new person "bob", 11

if person::instantiated
  alert "yes!"
else
  alert "no"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM