Здравствуйте, форумчане!
Пишу на 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 не видна.