Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2016, 17:43
Интересующийся
Отправить личное сообщение для NO_ONE Посмотреть профиль Найти все сообщения от NO_ONE
 
Регистрация: 01.03.2014
Сообщений: 19

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

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


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

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

var lib = function() {};
lib.prototype.funcOne = function() {};
lib.prototype.funcTwo = function() {};
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2016, 18:22
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 444

NO_ONE,
посмотри код lodash, посмотри....
если 4.14.0, то начиная со строки 15992
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2016, 19:27
Интересующийся
Отправить личное сообщение для NO_ONE Посмотреть профиль Найти все сообщения от NO_ONE
 
Регистрация: 01.03.2014
Сообщений: 19

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

(function() {
  "use strict";

  function myLib() {};

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

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

  window._ = myLib;

}());


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

P.S. Я понимаю, что в рамках моей "библиотеки" скорость не так существенна, но мне просто интересно, как будет эффективней реализовать задачу.
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2016, 21:59
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,119

NO_ONE, прототипы не для твоего случая...
Ответить с цитированием
  #5 (permalink)  
Старый 20.09.2016, 23:38
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 444

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать массив функций или функция с индексом sovsem-nub Общие вопросы Javascript 1 04.12.2015 13:15
про использование функций внутри функций javascriptus-maximus-∆ Общие вопросы Javascript 6 10.10.2014 00:47
Много js функций получается Evgeny_Dedov jQuery 4 15.07.2013 14:17
Непонятный алгоритм отработки функций Jopses jQuery 5 16.02.2013 10:55
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 12:20