@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 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы