Показать сообщение отдельно
  #9 (permalink)  
Старый 03.09.2013, 12:45
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от kobezzza
сли я правильно понял, то тебе нужно продекларировать принадлежность методов к прототипу класса, а это можно сделать с помощью директивы lends, но нужно учесть 2 моменты при работе с ней
Не совсем так, у меня конструктор создается динамически:

void function() {
     var global = function() {
         return this;
     }();

     var fabric = function(name, value) {
        global[name] = value;
     };

     global.fabric = fabric;
}();

// Как тут сказать что создается конструктор window.foo, а this это ссылка на него ?
fabric('foo', function(name) {
    this[name] = 1;
});

(new foo).prop; // 1



PS: правда такой код успешно компилится, а вот если сделать фабрику конструкторов чуть по сложней, то gcc валит ошибками, что ничего не понимат (


Проблема частично решена, если свойство определено через скобочную нотацию, значит доступ к нему должен быть таким же:

(new foo)['prop']; // 1


Либо экпортировать все переменные заранее, через опцию --externs

Последний раз редактировалось monolithed, 03.09.2013 в 13:17.
Ответить с цитированием