Come passare un oggetto come parametro alla funzione di costruzione, e copiare le sue proprietà nel nuovo oggetto? Ecco di seguito un pattern pronto all’uso.
Ecco un esempio veloce su come utilizzare JavaScript module pattern per passare un oggetto come parametro a una funzione ‘constructor’:
var s, NewsWidget = { //Impostiamo i settaggi di 'default': settings: { numArticles: 5, articleList: $('#article-list'), moreButton: $("#more-button") }, //Nella funzione di 'init', passiamo come argomento //l'oggetto memorizzato nella proprietà 'settings', //e sovrascriviamo le proprietà di default. Chiamiamo //poi la funzione 'bindUIActions' init: function(options) { this.settings = $.extend(this.settings, options); s = this.settings; this.bindUIActions(); }, bindUIActions: function() { s.moreButton.on('click', function() { NewsWidget.getMoreArticles(s.numArticles); }); }, getMoreArticles: function(numToGet) { // $.ajax or something // using numToGet as param } }; $(function(){ NewsWidget.init({ numArticles: 6 }); console.log(s.numArticles); });