Как этот шаблон называется в Javascript? у него есть имя? - PullRequest
9 голосов
/ 29 августа 2011

component.js

var component = (function(){

    var self;

    var default_options = {
        array_option : [],
        string_option : "default"
    };

    return {

        other_function: function(args) {

        },
        init: function(options) {
            self = this;

            // merge in user options 
            for (var attr in options) { 
                if (options.hasOwnProperty(attr)) {
                    self.o[attr] = options[attr];
                }
            }            

            /***
             * Initialize component
             */

            self.other_function(args);
        }
   };

})();

затем в html

<script src="component.js"></script>
<script>
    // init the component
    component.init({
        array_option : [1,2,3],
    });
</script>

Причина, по которой я спрашиваю, состоит в том, что я видел это на примере и думал, что это имеет смысл, но их чтениепочему это хорошая практика?это объектно-ориентированный Javascript?

, если этот IS OO javascript, делает ли этот шаблон определения прототипа бесполезными?

Хороший ответ на поставленный выше вопрос

Javascript: Шаблон модуля vs Шаблон конструктора / прототипа?

Ответы [ 4 ]

8 голосов
/ 29 августа 2011

Шаблон модуля Javascript и да, он пытается имитировать ОО-программирование с инкапсуляцией

0 голосов
/ 29 августа 2011

Вы можете прочитать о шаблоне модуля в блоге YUI .

0 голосов
/ 29 августа 2011

Это называется само-вызывающей (анонимной) функцией.Компонент возвращает объект, у которого есть метод init, поэтому вы можете объединять вызовы вместе.

0 голосов
/ 29 августа 2011

Это ООП в JS. Это стандартная практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...