Автор: Dflying Chen ( http://dflying.cnblogs.com/ )
JavaScript — очень мощный объектно-ориентированный язык, но в его поддержке объектно-ориентированного языка все еще имеются некоторые недостатки. Созданная библиотека классов также относительно проста и даже не имеет всех необходимых функций. часто используемые функции. ASP.NET Atlas расширяет возможности JavaScript во время выполнения, значительно расширяет его возможности объектно-ориентированной поддержки и расширяет некоторые часто используемые операции во время разработки.
Я обратился к файлу Atlas.js и пришел к выводу, что Atlas имеет следующие расширения JavaScript. В некоторых местах есть упущения или ошибки, прошу меня простить и поправить.
Расширение строкового объекта
String String.ltrim()
Удаляет все пробелы в начале исходной строки и возвращает новый объект String.
Строка String.rtrim()
Удаляет все пробелы в конце исходной строки и возвращает новый объект String.
Строка String.trim()
Удаляет все пробелы в начале и конце исходной строки и возвращает новый объект String.
Логическое значение String.endsWidth(strEnd)
Заканчивается ли эта строка переданной в String.
Логическое значение String.startsWith(strStart)
Начинается ли эта строка с переданной в String.
Строка String.format(args1,args2,.)
Подобно String.Format() в C#, {n} в обрабатываемой строке будет заменен соответствующим n-м параметром, и будет возвращен новый объект String.
Строка String.removeSpaces()
Удаляет все пробелы из исходной строки и возвращает новый объект String.
Строка String.removeExtraSpaces()
Замените последовательные пробелы в исходной строке одиночными пробелами (включая возврат каретки) и верните новый объект String.
Строка String.removeSpaceDelimitedString(str)
Удаляет указанные слова (фрагменты текста, разделенные пробелами) из исходной строки и возвращает новый объект String. Этот метод можно использовать при удалении имени класса, содержащего элементы DOM с несколькими именами классов.
Расширения объектов Array
void Array.queue(objValue) и void Array.add(objValue)
Вставляет указанное objValue в конец этого массива.
void Array.addRange(rangeArray)
Добавьте указанный rangeArray в конец массива.
Boolean Array.contains(objValue) и Boolean Array.exists(objValue)
Возвращает логическое значение, указывающее, содержит ли массив элемент objValue.
Массив Array.clone()
Возвращает неполную копию этого массива.
void Array.insert(индекс, objValue)
Вставьте указанное objValue в позицию индекса массива.
ObjectArray.dequeue()
Удаляет и возвращает первую запись в этом массиве.
Объект Array.removeAt(индекс)
Удаляет и возвращает запись по указанному индексу в этом массиве.
Логический массив.remove(objValue)
Удаляет указанную запись objValue из массива и возвращает логическое значение, указывающее, существует ли запись и была ли она успешно удалена.
Массив Array.parse(строка)
Разберите входящий массив, представленный строкой, в массив.
недействительный Массив.очистить()
Очистите все записи в этом массиве.
Целочисленный массив.get_length()
Возвращает количество записей в этом массиве, эквивалентное Array.length.
Объект Array.getItem(индекс)
Возвращает запись по указанному индексу в этом массиве.
Расширение объекта Date
String Date.toFormattedString(stringFormat)
Отформатируйте и выведите объект Date в соответствии с входной строкойFormat (слишком много строк формата... Мне лень их писать. Если они вам нужны, просто посмотрите строки 748-871 в Atlas.js).
Расширение объекта
Number Number Number.parse(string)
Попробуйте проанализировать входящую строку как число.
Строка Number.toFormattedString(stringFormat)
Отформатируйте и выведите объект Number в соответствии с входной строкойFormat (строка формата все еще слишком велика... лень писать ее, если она вам нужна, просто посмотрите строки 935-1024 в Atlas.js).
Класс Sys.StringBuilder
похож на StringBuilder в C#:
var sb = new Sys.StringBuilder();
sb.append("<div>");
sb.appendLine("строка текста");
sb.append("</div>");
someDOMElem.innerHTML = sb.toString();
Объектно-ориентированная поддержка определяет базовые классы, которые можно унаследовать от
Базовыйкласс = функция()
{
// объект
}
BaseClass.registerClass("BaseClass");
Унаследованный классDerivedClass
= function();
{
// Вызов конструкторов базы
// Второй аргумент — это массив, который можно использовать для передачи аргументов
DerivedClass.intializeBase(this,arguments);
}
DerivedClass.registerClass("DerivedClass","BaseClass");
Множественное
наследованиеMultipleInherit= function();
{
MultipleInherit.intializeBase(this,arguments); // начальная загрузка;
// объект
}
MultipleInherit.registerClass("MultipleInherit",["BaseClass", "DerivedClass"]);
Определите методы, которые можно переопределить
BaseClass = function();
{
// объект
this.initialize = функция()
{
}
BaseClass.registerBaseMethod(this, «инициализировать»);
}
BaseClass.registerClass("БазовыйКласс");
Вызов переопределенного метода базового класса
ПроизводныйКласс = функция()
{
DerivedClass.initializeBase(this,arguments); // начальная загрузка;
this.initialize = функция()
{
DerivedClass.getBaseMethod(this, «BaseClass», «initialize»).call(this);
// Чтобы передать аргументы базовому классу:
// .call(this,args1,args2,args3)
}
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);
NamespaceregisterNamespace
("Web.Utility");
// Реализация веб-утилиты
RegisterNamespace("Web.Performance");
// Реализация производительности
Определите тип Enum var theEnum = Type.createEnum("name1","name2");
for (var strItems в theEnum.getValues())
{
}
Определить тип флага
var theFlags = Type.createFlags("имя1",значение1,"имя2",значение2,);