Autor: Dflying Chen ( http://dflying.cnblogs.com/ )
JavaScript es un lenguaje basado en objetos muy poderoso, pero todavía hay algunas deficiencias en su soporte para la orientación a objetos. La biblioteca de clases construida también es relativamente simple e incluso carece de todo. funciones comúnmente utilizadas. ASP.NET Atlas amplía JavaScript en tiempo de ejecución, mejora en gran medida sus capacidades de soporte orientado a objetos y amplía algunas operaciones de uso común durante el desarrollo.
Me referí al archivo Atlas.js y concluí que Atlas tiene las siguientes extensiones de JavaScript. Hay algunas omisiones o errores en algunos lugares, perdónenme y corríjanme.
Extensión de objeto de cadena
String String.ltrim()
Elimina todos los espacios al principio de la Cadena original y devuelve un nuevo objeto Cadena.
Cadena Cadena.rtrim()
Elimina todos los espacios al final de la Cadena original y devuelve un nuevo objeto Cadena.
Cadena Cadena.recortar()
Elimina todos los espacios al principio y al final de la Cadena original y devuelve un nuevo objeto Cadena.
Cadena booleana.endsWidth(strEnd)
Si esta cadena termina con la cadena pasada.
Cadena booleana.startsWith(strStart)
Si esta cadena comienza con la cadena pasada.
Cadena Cadena.formato(args1,args2,.)
Similar a String.Format() en C#, {n} en la cadena manipulada será reemplazada por el enésimo parámetro correspondiente y se devolverá un nuevo objeto String.
Cadena Cadena.removeSpaces()
Elimina todos los espacios del String original y devuelve un nuevo objeto String.
Cadena Cadena.removeExtraSpaces()
Reemplace los espacios consecutivos en la Cadena original con espacios simples (incluidos los retornos de carro) y devuelva un nuevo objeto Cadena.
Cadena Cadena.removeSpaceDelimitedString(cadena)
Elimina las palabras especificadas (fragmentos de texto separados por espacios) de la Cadena original y devuelve un nuevo objeto Cadena. Este método se puede utilizar al eliminar un nombre de clase que contiene elementos DOM con varios nombres de clase.
Extensiones de objetos Array
void Array.queue(objValue) y void Array.add(objValue)
Inserta el objValue especificado al final de esta matriz.
matriz vacía.addRange (rangoArray)
Agregue el rangeArray especificado al final del Array.
Boolean Array.contains(objValue) y Boolean Array.exists(objValue)
Devuelve un valor booleano que representa si la matriz contiene el elemento objValue.
Matriz Matriz.clon()
Devuelve una copia superficial de esta matriz.
void Array.insert (índice, objValue)
Inserte el objValue especificado en la posición de índice de la matriz.
ObjectArray.dequeue()
Elimina y devuelve la primera entrada de este Array.
Matriz de objetos.removeAt(índice)
Elimina y devuelve la entrada en el índice especificado en esta matriz.
Matriz booleana.eliminar (objValue)
Elimina la entrada objValue especificada de la matriz y devuelve un valor booleano que indica si la entrada existe y se eliminó correctamente.
Matriz Array.parse (cadena)
Analiza la matriz entrante representada por una cadena en una matriz.
matriz vacía.clear()
Borre todas las entradas de esta matriz.
Matriz entera.get_length()
Devuelve el número de entradas en este Array, equivalente a Array.length.
Objeto Array.getItem(índice)
Devuelve la entrada en el índice especificado en esta matriz.
Extensión del objeto de fecha
Cadena Date.toFormattedString(stringFormat)
Formatee y genere el objeto Fecha de acuerdo con el formato de cadena de entrada (hay demasiadas cadenas de formato ... Soy demasiado vago para escribirlas. Si las necesita, solo mire las líneas 748-871 en Atlas.js).
Extensión del objeto numérico
Número Number.parse (cadena)
Intente analizar la cadena entrante como Número.
Número de cadena.toFormattedString(stringFormat)
Formatee y genere el objeto Número de acuerdo con el formato de cadena de entrada (todavía hay demasiadas cadenas de formato ... demasiado vago para escribirlo, si lo necesita, solo mire las líneas 935-1024 en Atlas.js).
La clase Sys.StringBuilder
es similar a StringBuilder en C#:
var sb = new Sys.StringBuilder();
sb.append("<div>");
sb.appendLine("una línea de texto");
sb.append("</div>");
someDOMElem.innerHTML = sb.toString();
El soporte orientado a objetos define clases base que se pueden heredar de
Clase base = función()
{
// objeto
}
BaseClass.registerClass("BaseClass");
Clase heredadaDerivedClass
= function()
{
// Llamar a los constructores de bases
// El segundo argumento es una matriz que puedes usar para pasar argumentos
DerivedClass.intializeBase (esto, argumentos);
}
DerivedClass.registerClass("DerivedClass","BaseClass");
múltipleMultipleInherit
= función();
{
MultipleInherit.intializeBase(esto,argumentos); // arranque);
// objeto
}
MultipleInherit.registerClass("MultipleInherit",["BaseClass", "DerivedClass"]);
Definir métodos que se pueden anular
BaseClass = function();
{
// objeto
this.initialize = función()
{
}
BaseClass.registerBaseMethod(this,"inicializar");
}
BaseClass.registerClass("BaseClass");
Llame al método anulado de la clase base
Clase derivada = función()
{
DerivedClass.initializeBase(this,argumentos); // arranque);
this.initialize = función()
{
DerivedClass.getBaseMethod(this,"BaseClass","initialize").call(this);
// Para pasar argumentos a la clase base:
// .call(esto,args1,args2,args3)
}
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);
NamespaceregisterNamespace
("Web.Utility");
// Implementar la utilidad web
registrarNamespace("Web.Performance");
// Implementar rendimiento
Defina el tipo de enumeración var theEnum = Type.createEnum("name1","name2");
para (var strItems en theEnum.getValues())
{
}
Definir tipo de bandera
var theFlags = Type.createFlags("nombre1",valor1,"nombre2",valor2,);