доступ к переменной класса - PullRequest
       26

доступ к переменной класса

0 голосов
/ 17 августа 2011

Я пытаюсь получить доступ к переменной класса через метод экземпляра через 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 Ответ

1 голос
/ 18 августа 2011

Когда вы создаете функцию, передавая строку в конструктор Function, эта функция может видеть только глобальную область (см. документы MDN ). Если вы написали

class (window ? global).Foo
  ...

тогда ваш код будет работать. В качестве альтернативы, вместо использования конструктора Function, просто используйте eval:

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