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 не видна. |
Цитата:
Цитата:
var Class = {};
var instance = Object(Class); // то же, что и var instance = Class;
instance.foo = "bar";
alert(Class.foo);
Цитата:
|
| Часовой пояс GMT +3, время: 09:38. |