Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как в объет добавить данные. (https://javascript.ru/forum/css-html/64326-kak-v-obet-dobavit-dannye.html)

Evgeny_Dedov 03.08.2016 13:32

Как в объет добавить данные.
 
Не могу допереть можно ли так сделать//
1. Есть объект
var obj = {}

2. Есть две переменные
var name = 'myFunction';
var func = (function(){ // Приходит с сервера - ajax
// ...
});


Как можно сделать что бы в итоге было:
var obj = {
myFunction : (function(){ // Приходит с сервера - ajax
// ...
});
}

Spass 03.08.2016 20:34

obj[name] = function(){ // Приходит с сервера - ajax
// ...
}

Evgeny_Dedov 04.08.2016 05:53

Я пытаюсь вот что добиться.
На сервере лежат куски js кода которые выдёргиваются в нужный момент.
Например:
Такой модуль.
(function(){
  var private = '';

  return {
      func1 : fucntion(){},
      func2 : fucntion(){}
}
});


Есть один объект который хранит все модули, например App
Мне нужно что бы получив с сервера данный кусок кода он стал рабочим объектом в App.
То есть, упрощённо...

Получаю с сервера:
$.get(url, function(data){ // получили кусок js кода в data
 // как его вставить в объект App
// что бы я мог обратиться к модулю так:
// App.module.func1()
// App.module.func2()
})

Spass 04.08.2016 10:20

Если под модулями подразумевается отдельный js файл то можно в нем же и делать присваивание

App.module1 = {
private : '',
func1 : function() {},
...
}



Если размеры модулей по пару килобайт то лучше все запихнуть в один файл

Evgeny_Dedov 04.08.2016 15:55

Spass, вот Спасибо.
Как я сразу не догадался! пока с js трудновато, язык интересный, но сходу - мутный.
У нас сейчас модули грузятся каждый в своё замыкание:
Например:
KATALOG = (function(){})();

Получается удобно, но в глобале висят все... Хочется создать один объект и в него всё складывать, а общаться между собой по событийной модели.. Сначала хотел require.js - но там как то всего лишнего много - на наш взгляд... Это описывать зависимости и тд..


Часовой пояс GMT +3, время: 00:09.