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);
});