Что делает этот фрагмент кода? Каково его практическое использование? Я не писал этот код. Я нашел его здесь: https://gist.github.com/anonymous/7407896Сразу вызывается объект литерал
!{
//convenience methods here for create and expose via this
create: function(options){
//constructor logic here
var created = Object.create(this.fn);
var args = [].slice.call(arguments);
this.plugins.forEach(function(plugin){
plugin.apply(created, args);
});
return created;
},
fn:{//prototype methods here
},
expose:function(NameSpace, window, document, plugins){
window[NameSpace] = this;//This can be tweaked for whatever
this.document = document;
this.plugins = plugins;
}
}.expose("LibraryNamespace", window, document, []);
Мне интересно знать, как это выше, лучше, чем делать что-то вроде откровенном шаблон модуля. Также я не понимаю механизм создания функции. Может ли кто-нибудь пройти меня через процесс создания объектов на основе прототипов?
var libraryNameSpace= window.libraryNameSpace || {};
libraryNameSpace.myFeatureOne = (function(){
var _bar = "_bar";
var foo = "foo" + _bar;
function foobar(){ return "foobar"; }
return {
myFoo : foo;
fooBarMethod: foobar;
};
})();
Как будет использоваться 'create'? – Bergi
Этот метод 'expose' смешивает экспонирование и инициализацию. – Bergi