A partire da jQuery 1.9, a widget can inherit from itself. Non sono riuscito a trovare un esempio reale del perché questo sarebbe stato utile, e francamente l'idea di ereditare da se mi spezza il cervello. Qual è lo scopo di questa funzione? Cosa posso fare usando questa funzione che non potrei fare in precedenza, o sarebbe stata molto più difficile in precedenza?Perché dovrei desiderare che un widget UI jQuery erediti da se stesso?
risposta
Come si dice in the slide you linked us, "questo è il modo ideale per estendere i widget".
Ora è possibile estendere un widget senza creare un nuovo oggetto widget "diverso" ("diverso" che significa "un altro nome"). È possibile aggiungere una funzionalità e utilizzare ancora lo stesso nome dell'oggetto widget.
// An incredibly contrived example
$.widget("ui.dialog", $.ui.dialog, {
close: function() {
if (confirm("Is it closing time?")) {
this._super("close");
}
}
});
Come si può vedere nell'esempio, possiamo aggiungere una funzionalità per l'oggetto finestra di dialogo, che apparirà nelle finestre di dialogo già esistenti, vale a dire, non è necessario creare un nuovo "extendedDialog" e poi cambiare il codice esistente per utilizzare l'oggetto "extendedDialog". Invece, la funzionalità inclusa sarà già disponibile e funzionante.
Il motivo è ridefinire lo stesso widget. Quindi, aggiungi nuove funzionalità ad esso, non è necessario estenderlo in un altro oggetto.
Nell'esempio presentato nel link che hai inviato:
$.widget("ui.dialog", $.ui.dialog, {
close: function() {
if (confirm("Is it closing time?")) {
this._super("close");
}
}
});
Dopo l'esecuzione del codice di cui sopra, ogni finestra di dialogo che si crea apparirà un messaggio di conferma quando l'utente fa clic del pulsante di chiusura e se lo accetta, si chiuderà.
Questo offre funzionalità simili a categorie in ogg-c, è possibile aggiungere funzionalità a una classe (widget) senza dover modificare il codice classe/widget stesso o persino avere accesso alla sua origine.
- 1. Come estendere un widget ui jquery? (1.7)
- 2. jQuery UI Tooltip Widget auto close
- 3. Sposando i widget jQuery-UI con i modelli jQuery?
- 4. Contenuto AJAX in un widget di ToolQuick UI jQuery
- 5. Perché dovrei inserire un componente Windows.Forms non-UI dal designer?
- 6. Non è possibile installare jQuery UI Widget: datepicker
- 7. Come estendere il metodo _create del widget UI jQuery?
- 8. jQuery UI senza HTML
- 9. Come memorizzare una proprietà interna nel widget jquery-ui?
- 10. Libreria UI migliore da utilizzare con jQuery
- 11. Visualizza pagina dopo jQuery UI ha terminato l'aggiornamento widget
- 12. Jquery-ui trascinabile e dinamico Jquery-ui trascinabile?
- 13. Widget UI del pianificatore di lavoro?
- 14. Widget UI HTML/JavaScript Builder GUI
- 15. Come posso modificare le opzioni del widget UI jQuery dopo che è stato creato?
- 16. plug-in sbt che dipende da se stesso per creare se stesso
- 17. jQuery UI WYSIWYG?
- 18. controllare se jQuery UI viene caricato
- 19. Perché dovrei usare vagabondo se uso virtualenv?
- 20. jquery-ui-tabs interferance di contenuto
- 21. JQuery UI trascinabile: Superamento del contenimento da un lato
- 22. jQuery UI icone emissione
- 23. Perché preoccuparsi di creare un widget javascript/jquery puro quando posso caricarlo in un iframe?
- 24. Nest jQuery UI typesables
- 25. jQuery nel widget
- 26. widget di jQuery UI autocomplete - come ottenere un riferimento al menu?
- 27. Che cos'è un delegato in Cocoa e perché dovrei usarli?
- 28. Come incorporare il widget Javascript che dipende da jQuery in un ambiente sconosciuto
- 29. Dovrei preoccuparmi che i file * .js referenziati non vengano trovati; se sì, cosa dovrei fare al riguardo?
- 30. Verticale "scheda" in loco UI jQuery
JavaScript non ha classi;) – davidbuzatto
JavaScript inoltre non ha ereditarietà! :-) –
Grazie per la risposta. Il pezzo chiave che mi mancava era che si potesse estendere un widget condiviso in un diverso file sorgente solo per una particolare applicazione. Un po 'come classi parziali in C#. Ha perfettamente senso ora. – RationalGeek