Богдан: Ну все зависит от определения.
Попробуйте сделать, например, так.
В функции обращаться ко всем внешним данным через this. function(){ this.objMenuRequirementProducts ... }
Глобальные переменные определите свойством window. window.objMenuRequirementProducts={};
А вызывайте функцию через метод .call(window). fn.call(window);
может и не самый удачный пример, но если это заработает, будет от чего отталкиваться.
Может быть, это какая-нибудь новая политика безопасности. Надо смотреть как инициализируется тот код, который получает аяксом.
Вот попробовал прислать аяксом "return window"
var w = new Function(body);
w(); // => возвращает объект window
я потеряю глобальный контекст на эту переменную и использование ее в других модулях?
Вообще, не потеряете. Во-первых, локально в функции вы ее (переменную objMenuRequirementProducts) не перегрузили. Во-вторых контекст (он же this) в обоих местах будет window, так как array function (=>) сохраняет контекст того места где она определена.
Вот мне только непонятно что означает new в коде new function(arr, obj) { /*...*/ }
Adamos: Однако, развели полемику... Вам времени не жалко?
StynuBlizz: Если у вас есть гаджет с андройдом, советую скачать ManMan. Отличное сортирное чтиво! Когда все что используешь уже прочитано, просто выбираешь рандомную страницу.
iamevg_: Хм. Недостаточно внимательно читали. Как раз в гардене коротко, при этом на пальцах разжеванно, как бывать в таких ситуациях. Ну... Может быть, это я вижу, т.к. до js программировал на разных языках, в том числе и под J2EE. - От того с оформлением мегабайтов кода я был знаком до. Java то научит ООП любить (особенно та проприетарная реализация Sun).
Если вы не владеете так называемым "абстрактным зрением", то, наверное, лучше будет попробовать TypeScript: строгая типизация, устойчивые кейсы, и... опережающий ввод. Все прелести кодера!
Для написания ОС в браузере, разумеется, предложил бы ознакомиться с ExtJS4. - Похоже, он подходит только для разработок ОС. Не меньше! Последующие версии значительно упрощены.
Дело в том, что любая организация кода с ментальной точки зрения является ограничением своей воли мысли. В этом нет ничего плохого. Иногда бывает, работая в команде, без каких либо правил и вовсе не обойтись. Слава богу, я с 2010 года больше не сталкивался с такими ограничениями. И переход на ExtJS4 c ExtJS3.4 был уже без моего участия.
Как бы так объяснить... Возможно, purejs это следующий уровень мастерства. А может быть, я пришел к этому с переходом на линукс и nodejs. Собственно, с какого-то переломного момента я стал программировать на js маленькими пакетами/либами/тулзами, и как-то до мегабайтных объемов лапшакода мое творчество никак не дорастает. Я полностью отвязан от идеологии ООП - могу использовать, могу не использовать. Где захочется использовать классы с наследованием (аля pojo), а где захочу - фабрики с миксинами и декораторами, но основной паттерн - простые функции.
Anton Gofman: Мне не нравится использование столь весомых зависимостей JRE, или вы собираетесь эмулировать все окружение linux? Может, тогда еще и проще взять платформу, собрать мидлет, и тестировать можно будет, например, на SonyEricsson K750.
Есть же целый вагон с тележкой систем тестирования. Есть тысячи интерпретируемых языков... Можно тестировать используя bash, python, lua, nodejs, ruby, да даже, черт возьми, basic... Любое решение, на мой взляд будет уместнее.
я бы даже сказал сам процесс пишется в 1 строку баша, прямо направляя поток dox в pug. про документацию в первую очередь подумал - это как пример. Вообще, вебом не занимаюсь уже лет 5
Worddoc: Я работаю с pug через cli-интерфейс из bash-скриптов. Код генерации документации по коду пишется на баше в 3 строки. Все, что нужно по оформлению делает pug. информацию по документации парсит dox.
На сколько помню, картинка не может быть больше канвы.
Тут либо помещать канвас с полной картинкой внутрь элемента нужного размера.
Либо постоянно перезагружать нужный фрейм картинки (таким образом памяти жрет меньше, но в ущерб плавности анимации).
Попробуйте сделать, например, так.
В функции обращаться ко всем внешним данным через this.
function(){ this.objMenuRequirementProducts ... }
Глобальные переменные определите свойством window.
window.objMenuRequirementProducts={};
А вызывайте функцию через метод .call(window).
fn.call(window);
может и не самый удачный пример, но если это заработает, будет от чего отталкиваться.
Может быть, это какая-нибудь новая политика безопасности. Надо смотреть как инициализируется тот код, который получает аяксом.
Вот попробовал прислать аяксом
"return window"