Обращение к методу через переменную внутри объекта, правильно так поступать?

Есть объект, с большим количеством методов и внутри которых есть свои объекты. И часто становится необходимо иметь доступ к методам родителя т.е главного объекта, а в переменной this только тот который его вызвал, будет ли правильным обращаться к методам объекта родителя через глобальную переменную, пример кода ниже:

// Глобальная переменная
var Febox = { 
    init: function (){ ... },  
    ajax: {
        get: function () {
            
        },
        post: function () { ... }
    },
    handle: 'shop',
    product: {
        addProduct: function (){ ... },
        productList: function (){
            
            // Обращаемся к методу ajax через глобальную переменную Febox
            Febox.ajax.get('/dashboard/product', { ... }, function (){
    
            });
            
            
        }
    }
    
};


Можно конечно поступить так, в каждом методе, объекте создать свойство ссылающаяся на this родителя, но в этом случае придется в более чем 100 методов и объектов переписывать, в принципе обращение к объекту через глобальную переменную работает без нариканий, тем более что она не является сама по себе глобальной, она находится локально внутри функции
(function(){
   Febox = { ... }
}())


Правильно поступаю я обращаясь к методам через переменную объекта? или все же стоит помучатся с this или есть более изящное решение?
  • Вопрос задан
  • 2490 просмотров
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Лучше было бы не обращаться напрямую, а общаться через события. Напрямую стоит обращаться к каким-нибудь утилитным функциям.

Я бы посоветовал вам заюзать какой-нибудь структурирущий фреймворк (хотя бы вот Backbone.js) и какой-нибудь модульный загрузчик, RequireJS или Browserify.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы