Всем добрый день. Хотелось бы сказать "коллеги", но я с js на большое "Вы".
Суть моего незнания такова. Есть скрипт, который грузится вместе с о страницей
class.js (например)
(function(window){
// Включение "строгого" режима
'use strict';
...
// Коллекция классов
function Cls(){
// Объект-справочник
var classes = {};
// Добавление скрипта на страницу
function AddScript(p_name){
// Получение элемента-родителя
var parent = document.getElementsByTagName('head')[0];
if(parent == undefined){
throw new Error('Ошибка: родительский элемент не найден.');}
// Создание элемента-скрипта
var script = document.createElement('script');
// Установка атрибутов
script.setAttribute('type','text/javascript');
script.setAttribute('src',p_name+'.js');
// Добавление элемента-скрипта к элементу-родителю
parent.appendChild(script);
return;
}
// Добавление свойства к объекту
Object.defineProperty(this,'Button',{
enumerable:false, // перечислимость
configurable:false, // конфигурируемость
get: function(){
// Если в справочнике нет нужного класса
if(classes['Button'] == undefined){
AddScript('Button');
}
// Возврат значения свойства
return classes['Button'];
},//get
set: function(value){
}//set
});
// Добавление класса в справочник
this.AddClass = function(f_name,f_value){
classes[f_name] = f_value;
}
}
window.cls = new Cls();
...
}(window));
и есть некий
Button.js
(function(window){
// Добавление класса
window.cls.AddClass('Button',function(p_param){
// Это функция-конструктор класса
});
}(window))
Ну я думаю уже многим стало понятно чего бы я хотел добиться вызовом
var Button = window.cls.Button;
И так же большинству и без прогона становится понятно что то чего я хочу я хрен получу, так как асинхронность.
Собственно, таки, растолкуйте мне убогому (начинающему) фреймворко-писателю как мне это реализовать? Может кто видел в каких аццких кодах "динамическую догрузку модулей"?
Заранее благодарен за любые комменты/ответы/"пиночки".