Tutoriel : Lang Package

Lang Package

La plupart des fonctionnalités de ce nouveau paquet existait sous ExtJs 3, mais que les modifications s'effectuaient  en prototypant le noyau d'objet JavaScript. Bien que cela était pratique, il fait très difficile pour ExtJs de coexister avec d'autres langages qui modifiaient les mêmes objets. Cela signifiait aussi que ExtJS était directement exposée à tout les changement qui pouvait se produire dans la spécification ECMAScript. Pour remédier à ces problèmes les développeurs ont  tout déplacé dans un espace de noms statiques.


Toutes les améliorations Prototype aux objets suivants ont été déplacés en conséquence (note qu'il n'y a pas réellement un lang espace de noms - c'est juste le paquet qui contient ces nouveaux fichiers dans l'arborescence de la source):

  • Array → Ext.Array
  • Date → Ext.Date
  • Fonction → Ext.Function
  • Nombre → Ext.Number
  • Objet → Ext.Object
  • String → Ext.String

Ext.Function :

Il ya peu de changements notables à la manière dont les méthodes Fonction ont été mis en œuvre en ExtJs4. Plus important encore, le Function.createDelegate et Function.createCallback sont maintenant nommés Ext.Function.bind et Ext.Function.pass. De même, Function.defer est maintenant disponible en Ext.Function.defer. Parce que ces trois fonctions sont  couramment utilisés, ils sont aussi alias sur Ext.bind , Ext.pass et Ext.defer.


Les autres méthodes comme createSequence et createInterceptor ont également été transférée à Ext.Function , il ya aussi quelques nouveaux ajouts utiles comme createBuffered et createThrottled .


Voici quelques exemples de la façon dont la syntaxe d'appel a changé:

 

// ExtJs 3:
myFunction.createDelegate(this, [arg1, arg2]);
myFunction.defer(1000, this);

// ExtJs 4:
Ext.bind(myFunction, this, [arg1, arg2];
Ext.defer(myFunction, 1000, this);