访问类变量

时间:2011-08-17 19:48:38

标签: javascript metaprogramming coffeescript

我正试图通过eval(Function

通过实例方法访问类变量
class Foo
  @classVariable = "helow"

class Bar extends Foo
  bar: -> (new Function("console.log(Foo.classVariable)")).call @
  baz: -> console.log(Foo.classVariable)

(new Bar()).baz()
(new Bar()).bar()

但方法bar引发错误,告诉我ReferenceError: Foo is not defined

有什么建议吗? 还有另一个访问类变量吗?

1 个答案:

答案 0 :(得分:1)

通过将字符串传递给Function构造函数来创建函数时,该函数只能看到全局范围(请参阅the MDN docs)。如果你写了

class (window ? global).Foo
  ...

然后你的代码就可以了。或者,不要使用Function构造函数,只需使用eval

bar: -> eval "console.log(Foo.classVariable);"