Задать вопрос
@alex0176

Как улучшить написанный код создания глобального объекта?

Привет, всем!
Хочу получить ваш совет касательно оптимизации написания кода. Задача следующая.
создаться глобальный объект Tools с помощью вызовов анонимных функций. Внутри тела функции создаться сам объект. для его создания приходиться вызывать две анонимные функции
return function (settings) {
    return  new Tools(settings);
}

Если удалить один return и написать вот так:
return new Tools(settings);
то получаю ошибку: ReferenceError: Tools is not defined
Хотелось бы как то лаконично все это оформить без глубокой вложенности функций.
Спасибо за любой совет. Вот мой частичный код и это все используется в плагине
;
(function( $ ) {
    "use strict"
	
	$(document).on('ready', function () { 
	
		const _FN = (function () { 
		
			const _defaults = {
					target : '.data-target',
					self   : null
				}
				
			function Tools(settings = _defaults) {

				let properties = Object.assign({}, _defaults, settings);

				for (let key in properties) {
					this[key] = properties[key];
				}
				this.length = Object.keys(properties).length;
			}
			
			Tools.prototype.method_1 = function () { /* do something... */ } 
			
			Tools.prototype.method_2 = function () { /* do something...*/ } 
			
			return function (settings) {
                                return  new Tools(settings);
                       }	
		
}());
		
( typeof window.Tools === 'undefined' ) ? window.Tools = _FN : console.error('Tools is existed');		
	}
	
}( jQuery ));
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 13:47
1800 руб./в час
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект