Auteur : Dflying Chen ( http://dflying.cnblogs.com/ )
JavaScript est un langage basé sur les objets très puissant, mais il existe encore quelques lacunes dans sa prise en charge de l'orientation objet. La bibliothèque de classes construite est également relativement simple et manque même de tout. 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 d'objet chaîne
String String.ltrim()
Supprime tous les espaces au début de la chaîne d'origine et renvoie un nouvel objet String.
Chaîne Chaîne.rtrim()
Supprime tous les espaces à la fin de la chaîne d'origine et renvoie un nouvel objet String.
String String.trim()
Supprime tous les espaces au début et à la fin de la chaîne d'origine et renvoie un nouvel objet String.
Chaîne booléenne.endsWidth(strEnd)
Indique si cette chaîne se termine par la chaîne transmise.
Chaîne booléenne.startsWith(strStart)
Indique si cette chaîne commence par la chaîne transmise.
Chaîne Chaîne.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é.
Chaîne String.removeSpaces()
Supprime tous les espaces de la chaîne d'origine et renvoie un nouvel objet String.
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.
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.
Extensions des objets Array
void Array.queue(objValue) et void Array.add(objValue)
Insère l'objValue spécifiée à la fin de ce tableau.
void Array.addRange(rangeArray)
Ajoutez le rangeArray spécifié à la fin du tableau.
Boolean Array.contains (objValue) et Boolean Array.exists (objValue)
Renvoie une valeur booléenne indiquant si le tableau contient l'élément objValue.
Tableau Tableau.clone()
Renvoie une copie superficielle de ce tableau.
void Array.insert (index, objValue)
Insérez l'objValue spécifiée dans la position d'index du tableau.
ObjectArray.dequeue()
Supprime et renvoie la première entrée de ce tableau.
Tableau d'objets.removeAt(index)
Supprime et renvoie l'entrée à l'index spécifié dans ce tableau.
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.
Tableau Tableau.parse(chaîne)
Analysez le tableau entrant représenté par une chaîne dans un tableau.
tableau vide.clear()
Effacez toutes les entrées de ce tableau.
Tableau d'entiers.get_length()
Renvoie le nombre d'entrées dans ce tableau, équivalent à Array.length.
Tableau d'objets.getItem (index)
Renvoie l'entrée à l'index spécifié dans ce tableau.
Extension de l'objet Date
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 Number Number.parse(string)
Essayez d'analyser la chaîne entrante sous forme de nombre.
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 les classes de base qui peuvent être héritées de
BaseClass = fonction()
{
// 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 surchargée de la classe de base
Classe dérivée = fonction()
{
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"]);
NamespaceregisterNamespace
("Web.Utility");
// Implémentation de l'utilitaire Web
registerNamespace("Web.Performance");
// Implémenter les performances
Définissez le type Enum var theEnum = Type.createEnum("name1","name2");
pour (var strItems dans theEnum.getValues())
{
}
Définir le type de drapeau
var theFlags = Type.createFlags("name1",value1,"name2",value2,);