Способы определения объектов Javascript, плюсы и минусы

Каковы основные способы определения многократно используемых объектов в Javascript? Я говорю «многоразовый», чтобы исключить одноэлементные методы, такие как прямое объявление переменной с помощью объектной буквальной нотации. var private = 3; this.add = function (bar) {return private + bar; } } var myFoo = новый Foo ();

  • Использование прототипов, аналогичных

     функции Foo () {
     var private = 3;
    }
    Foo.prototype.add = function (bar) {/ * не может получить доступ к приватному, правильно? * /}
    
  • Возвращение литерала без использования this или новой

     функции Foo () {
     var private = 3;
    var add = function (bar) {return private + bar; }
     возвращение {
     добавить: добавить
     };
    }
    
    var myFoo = Foo ();
    
  • Я могу думать об относительно незначительных вариациях на них, которые, вероятно, не имеют большого значения. Какие стили мне не хватает? Что еще более важно, каковы плюсы и минусы каждого из них? Есть ли рекомендуемый вариант, которого следует придерживаться, или это вопрос предпочтений и священной войны?

    14
    задан Tesserex 29 November 2012 в 15:55
    поделиться