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, время: 14:28. |