1

これがコード例です

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

bob = new person("bob", 11)

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

この例では、person クラスがインスタンス化されたかどうかをテストし、「はい!」と警告します。それが想定されているように。Bob は人であり、インスタンス化されているためです。

しかし、ここで:

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

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

インスタンス化された人がいないため、これで「いいえ」と警告したいのですが、それでも「はい」と警告します。

クラスがインスタンス化されているかどうかをテストする正しい方法は何ですか。

説明:

ボブが何であるかをテストして確認したくありません。私は何らかの形態の人物がインスタンス化されているかどうかを確認したい.

4

2 に答える 2

1

個人クラスが定義されているかどうかをテストしています。これはあなたが望むことを達成します。

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

上記の回答と同じですが、より coffeescript に似た構文を使用します。

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 に答える