Domanda

ExtJS ha la funzione Ext.each (), ma c'è una mappa () nascosta anche da qualche parte?

Ho provato molto, ma non ho trovato nulla che potesse ricoprire questo ruolo. Sembra essere qualcosa di semplice e banale, che una libreria JS così grande come Ext deve chiaramente avere.

O quando Ext non lo include davvero, quale sarebbe il modo migliore per aggiungerlo a Ext. Certo, potrei semplicemente scrivere:

Ext.map = function(arr, f) { ... };

Ma è davvero il modo corretto di farlo?

È stato utile?

Soluzione 3

Sembra che i miei college qui stiano utilizzando ext-basex , che estende Array.prototype con map () e altri metodi.

Quindi posso solo scrivere:

[1, 2, 3].map( function(){ ... } );

Problema risolto.

Altri suggerimenti

Poiché map è più un'utilità che altro, non vedo perché ci sarebbe un modo speciale di collegarlo allo spazio dei nomi Ext; il modo in cui proponi funzionerebbe abbastanza bene, anche se potresti volerlo fare così:

if(Ext && typeof(Ext.map) == "undefined") { // only if Ext exists & map isn't already defined
   Ext.map = function(arr, f) { ... };
}

Sembra che andrebbe bene ... ma poi non uso ExtJS, quindi non lo so. Ho dato un'occhiata ai loro documenti e non sembra che ci sia qualcosa di speciale da fare in questo caso.

Che dire dell'utilizzo di una delle librerie ibride come Ext + Prototype o Ext + Jquery. Sto usando Extjs + Prototypejs da un po 'di tempo e mi ha aiutato molto a lavorare nel codice Extjs con avere anche i prototypejs più familiari insieme per il giro.

http://extjs.com/products/extjs/build/ costruirà un file tar / zip personalizzato di tutti i file necessari per eseguire extjs e (prototypejs | jquery | yahooUI).

ExtJS non sostituisce il linguaggio Javascript stesso. Le funzioni di array non sono al centro del core ExtJS. Tuttavia, esiste un tipo di oggetto Ext.Array speciale. Puoi estenderlo da solo.

EDIT: non Ext.Array, ma solo oggetto Array esteso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top