Сообщение от 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