我正试图通过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
有什么建议吗? 还有另一个访问类变量吗?
答案 0 :(得分:1)
通过将字符串传递给Function
构造函数来创建函数时,该函数只能看到全局范围(请参阅the MDN docs)。如果你写了
class (window ? global).Foo
...
然后你的代码就可以了。或者,不要使用Function
构造函数,只需使用eval
:
bar: -> eval "console.log(Foo.classVariable);"