Привет, всем!
Хочу получить ваш совет касательно оптимизации написания кода. Задача следующая.
создаться глобальный объект 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 ));