JavaScript est un langage basé sur les objets très puissant, mais sa prise en charge de l'orientation objet présente encore quelques défauts. Dans le même temps, la bibliothèque de classes intégrée de JavaScript est relativement simple et manque même de toutes les fonctions couramment utilisées. ASP.NET Atlas étend JavaScript au moment de l'exécution, améliore considérablement ses capacités de prise en charge orientées objet et étend certaines opérations couramment utilisées pendant le développement.
J'ai fait référence au fichier Atlas.js et j'ai conclu qu'Atlas possède les extensions JavaScript suivantes. Il y a quelques omissions ou erreurs à certains endroits, pardonnez-moi et corrigez-moi.
Extension de l'objet String
1. String String.ltrim()
Supprime tous les espaces au début de la chaîne d'origine et renvoie un nouvel objet String.
2. Chaîne String.rtrim()
Supprime tous les espaces à la fin de la chaîne d'origine et renvoie un nouvel objet String.
3. Chaîne String.trim()
Supprime tous les espaces au début et à la fin de la chaîne d'origine et renvoie un nouvel objet String.
4. Chaîne booléenne.endsWidth(strEnd)
Indique si cette chaîne se termine par la chaîne transmise.
5. Chaîne booléenne.startsWith(strStart)
Indique si cette chaîne commence par la chaîne transmise.
6. Chaîne String.format(args1,args2,.)
Semblable à String.Format() en C#, {n} dans la chaîne manipulée sera remplacé par le nième paramètre correspondant et un nouvel objet String sera renvoyé.
7. Chaîne String.removeSpaces()
Supprime tous les espaces de la chaîne d'origine et renvoie un nouvel objet String.
8. Chaîne String.removeExtraSpaces()
Remplacez les espaces consécutifs dans la chaîne d'origine par des espaces simples (y compris les retours chariot) et renvoyez un nouvel objet String.
9. Chaîne String.removeSpaceDelimitedString(str)
Supprime les mots spécifiés (fragments de texte séparés par des espaces) de la chaîne d'origine et renvoie un nouvel objet String. Cette méthode peut être utilisée lors de la suppression d'un nom de classe contenant des éléments DOM avec plusieurs noms de classe.
Extension de l'objet Array
1. void Array.queue(objValue) et void Array.add(objValue)
Insère l'objValue spécifiée à la fin de ce tableau.
2. void Array.addRange(rangeArray)
Ajoutez le rangeArray spécifié à la fin du tableau.
3. Boolean Array.contains (objValue) et Boolean Array.exists (objValue)
Renvoie une valeur booléenne indiquant si le tableau contient l'élément objValue.
4. Tableau Tableau.clone()
Renvoie une copie superficielle de ce tableau.
5. void Array.insert(index, objValue)
Insérez l'objValue spécifiée dans la position d'index du tableau.
6. Tableau d'objets.dequeue()
Supprime et renvoie la première entrée de ce tableau.
7. Tableau d'objets.removeAt(index)
Supprime et renvoie l'entrée à l'index spécifié dans ce tableau.
8.Tableau booléen.remove(objValue)
Supprime l'entrée objValue spécifiée du tableau et renvoie une valeur booléenne indiquant si l'entrée existe et a été supprimée avec succès.
9. Tableau Tableau.parse (chaîne)
Analysez le tableau entrant représenté par une chaîne dans un tableau.
10. void Array.clear()
Effacez toutes les entrées de ce tableau.
11. Tableau d'entiers.get_length()
Renvoie le nombre d'entrées dans ce tableau, équivalent à Array.length.
12. Tableau d'objets.getItem (index)
Renvoie l'entrée à l'index spécifié dans ce tableau.
Extension de l'objet Date
1. String Date.toFormattedString(stringFormat)
Formatez et affichez l'objet Date en fonction du stringFormat d'entrée (il y a trop de chaînes de format... Je suis trop paresseux pour les écrire. Si vous en avez besoin, regardez simplement les lignes 748 à 871 dans Atlas.js).
Extension de l'objet Number
1. Number Number.parse(string)
Essayez d'analyser la chaîne entrante sous forme de nombre.
2. Numéro de chaîne.toFormattedString(stringFormat)
Formatez et affichez l'objet Number en fonction de l'entrée stringFormat (la chaîne de format est encore trop... trop paresseuse pour l'écrire, si vous en avez besoin, regardez simplement les lignes 935-1024 dans Atlas.js).
La classe Sys.StringBuilder
est similaire à StringBuilder en C# :
var sb = new Sys.StringBuilder();
sb.append("<div>");
sb.appendLine("une ligne de texte");
sb.append("</div>");
someDOMElem.innerHTML = sb.toString();
La prise en charge orientée objet
définit une classe de base qui peut être héritée
BaseClass = function()
{
// objet
}
BaseClass.registerClass("BaseClass");
classDerivedClass
= function()
{
// Appel aux constructeurs de base
// Le 2ème argument est un tableau que vous pouvez utiliser pour passer des arguments
DerivedClass.intializeBase(this,arguments);
}
DerivedClass.registerClass("DerivedClass","BaseClass");
Héritage
multipleMultipleInherit= function()
{
MultipleInherit.intializeBase(this,arguments); // bootstrap
// objet
}
MultipleInherit.registerClass("MultipleInherit",["BaseClass", "DerivedClass"]);
Définir les méthodes qui peuvent être remplacées
BaseClass = function() ;
{
// objet
this.initialize = fonction()
{}
BaseClass.registerBaseMethod(this,"initialize");
}
BaseClass.registerClass("BaseClass");
Appeler la méthode substituée de la classe de base
DerivedClass = function()
{
DerivedClass.initializeBase(this,arguments); // bootstrap
this.initialize = fonction()
{
DerivedClass.getBaseMethod(this,"BaseClass","initialize").call(this);
// Pour passer des arguments à la classe de base :
// .call(ce,args1,args2,args3)
}
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);
espace de noms
registerNamespace("Web.Utility");
// Implémentation de l'utilitaire Web
registerNamespace("Web.Performance");
// Implémenter les performances
définit le type Enum
var theEnum = Type.createEnum("name1","name2");
pour (var strItems dans theEnum.getValues())
{}
Définir le type d'indicateur
var theFlags = Type.createFlags("name1",value1,"name2",value2,);