jQuery ha un ottimo metodo extend
, che unisce 2 oggetti in uno.Perché passare un oggetto vuoto al metodo di estensione di jQuery?
Sulla jQuery Plugins authoring page che mostrano un esempio come segue:
var settings = $.extend({
'location' : 'top',
'background-color' : 'blue'
}, options);
Tuttavia, ho visto molti plugin passano un oggetto vuoto come primo parametro, in questo modo:
var settings = $.extend({}, {
'location' : 'top',
'background-color' : 'blue'
}, options);
quanto come posso dire, questi due fanno esattamente la stessa cosa. L'unica differenza sarebbe se il defaults
sarebbe stato memorizzato nella propria variabile:
var defaults = {
'location' : 'top',
'background-color' : 'blue'
},
settings = $.extend({}, defaults, options);
In questo modo, è sempre possibile accedere ai valori di default senza che vengano sovrascritti dal options
.
Ecco la domanda: Perché così tanti autori di plugin scelgono di passare un oggetto vuoto per extend
, anche quando non memorizzare le impostazioni predefinite in una variabile?
Mi manca qualcosa?
sembra inutile per me. Sta facendo un popolato, copiandolo in uno vuoto e scartandolo. Il tuo terzo esempio mostra un motivo valido. Immagino che le persone lo facciano perché non pensano a quello che stanno facendo. –
@amnotiam Questo è esattamente quello che sto pensando, ma ho visto * tanti plug-in * fare questo. Chiaramente mi manca qualcosa ... –
No, penso che il problema sia che stai * ricevendo * qualcosa. –