Показать сообщение отдельно
  #1 (permalink)  
Старый 03.07.2014, 16:39
Новичок на форуме
Отправить личное сообщение для GlaIZier Посмотреть профиль Найти все сообщения от GlaIZier
 
Регистрация: 14.03.2014
Сообщений: 8

Best practice ООП в JS
Здравствуйте, форумчане!

Пишу на JS не очень давно. В основном пишу на Java, поэтому нубовский вопрос. Как правильно организовывать код в JS, если ты хочешь сделать нечто похожее на класс? Есть best practice?

И еще. До этого писал так:

var Class = {};
 
 var Class._args = {}; // private
 
 Class.init = function(Args) { // "constructor"
    _args = Args;
 }

 Class.helloWorld = function() {  // api for Сlass
     alert(_args[0]);
 }

var obj = Object(Class);


А сейчас наткнулся на такой вариант:
var Class= Class || (function(){
    var _args = {}; // private

    return {
        init : function(Args) {
            _args = Args;
            // some other initialising
        },
        helloWorld : function() {
            alert('Hello World! -' + _args[0]);
        }
    };
}());


Не совсем понимаю, в чем между ними принципиальная разница? Зачем городить еще одну функцию "поверх" всего объекта?

Спасибо большое!


UPD.

Кажется понял... Во втором случае используется замыкание и извне _args не видна.

Последний раз редактировалось GlaIZier, 03.07.2014 в 16:57. Причина: Частично нашел ответ.
Ответить с цитированием