Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Структурирование множества функций (https://javascript.ru/forum/misc/65002-strukturirovanie-mnozhestva-funkcijj.html)

NO_ONE 19.09.2016 17:43

Структурирование множества функций
 
Всем привет.
Я решил написать для своих нужд "библиотеку", которая будет состоять из собственных функций. Погуглив как это всё организовать, нашёл решение - сделать из всех функций объект.

var lib = {
  funcOne: function(e) {},
  funcTwo: function(e) {},
  // и т.д.
}


Правильно ли это будет делать с точки зрения производительности, если таких функций очень много и они достаточно большие?

Не предпочтительней ли будет, допустим, такая конструкция?

var lib = function() {};
lib.prototype.funcOne = function() {};
lib.prototype.funcTwo = function() {};

Coriolan161 19.09.2016 18:22

NO_ONE,
посмотри код lodash, посмотри....
если 4.14.0, то начиная со строки 15992

NO_ONE 20.09.2016 19:27

Спасибо за совет, посмотрел. По примеру lodash написал такой модуль:

(function() {
  "use strict";

  function myLib() {};

  function funcOne() {}
  function funcTwo() {}

  myLib.funcOne = funcOne;
  myLib.funcTwo = funcTwo;

  window._ = myLib;

}());


Но будет ли это лучше по производительности, чем вариант выше с прототипами? Про последний, кстати, узнал из рекомендаций гугла.

P.S. Я понимаю, что в рамках моей "библиотеки" скорость не так существенна, но мне просто интересно, как будет эффективней реализовать задачу.

Rise 20.09.2016 21:59

NO_ONE, прототипы не для твоего случая...

Coriolan161 20.09.2016 23:38

NO_ONE,
Там не про тебя писалось.
1) Они советуют избегать замыканий в конструкторах, чтобы не забивать память
2) Неизменяемые свойства инстанс переменных конструктора они советуют пихать в прототип
3) Производительность будет зависеть от того, что ты будешь делать в своих funcOne и funcTwo
4) Если у тебя библиотека будет не только под клиент, то одного window контекста мало)))


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