JavaScript — очень мощный объектно-ориентированный язык, но его поддержка объектно-ориентированного программирования все еще имеет некоторые недостатки. В то же время встроенная библиотека классов JavaScript относительно проста и в ней даже отсутствуют все часто используемые функции. ASP.NET Atlas расширяет возможности JavaScript во время выполнения, значительно расширяет его возможности объектно-ориентированной поддержки и расширяет некоторые часто используемые операции во время разработки.
Я обратился к файлу Atlas.js и пришел к выводу, что Atlas имеет следующие расширения JavaScript. В некоторых местах есть упущения или ошибки, прошу меня простить и поправить.
Расширение объекта String
1. String String.ltrim()
Удаляет все пробелы в начале исходной строки и возвращает новый объект String.
2. Строка String.rtrim()
Удаляет все пробелы в конце исходной строки и возвращает новый объект String.
3. Строка String.trim()
Удаляет все пробелы в начале и конце исходной строки и возвращает новый объект String.
4. Логическое значение String.endsWidth(strEnd)
Заканчивается ли эта строка переданной в String.
5. Логическое значение String.startsWith(strStart)
Начинается ли эта строка с переданной в String.
6. Строка String.format(args1,args2,.)
Подобно String.Format() в C#, {n} в обрабатываемой строке будет заменен соответствующим n-м параметром, и будет возвращен новый объект String.
7. Строка String.removeSpaces()
Удаляет все пробелы из исходной строки и возвращает новый объект String.
8. Строка String.removeExtraSpaces()
Замените последовательные пробелы в исходной строке одиночными пробелами (включая возврат каретки) и верните новый объект String.
9. Строка String.removeSpaceDelimitedString(str)
Удаляет указанные слова (фрагменты текста, разделенные пробелами) из исходной строки и возвращает новый объект String. Этот метод можно использовать при удалении имени класса, содержащего элементы DOM с несколькими именами классов.
Расширение объекта Array
1. void Array.queue(objValue) и void Array.add(objValue)
Вставляет указанное objValue в конец этого массива.
2. void Array.addRange(rangeArray)
Добавьте указанный rangeArray в конец массива.
3. Boolean Array.contains(objValue) и Boolean Array.exists(objValue)
Возвращает логическое значение, указывающее, содержит ли массив элемент objValue.
4. Массив Array.clone()
Возвращает неполную копию этого массива.
5. void Array.insert(index, objValue)
Вставьте указанное objValue в позицию индекса массива.
6. Объектный массив.dequeue()
Удаляет и возвращает первую запись в этом массиве.
7. Объект Array.removeAt(индекс)
Удаляет и возвращает запись по указанному индексу в этом массиве.
8. Логический массив.remove(objValue)
Удаляет указанную запись objValue из массива и возвращает логическое значение, указывающее, существует ли запись и была ли она успешно удалена.
9. Массив Array.parse(строка)
Разберите входящий массив, представленный строкой, в массив.
10. void Array.clear()
Очистите все записи в этом массиве.
11. Целочисленный массив.get_length()
Возвращает количество записей в этом массиве, эквивалентное Array.length.
12. Объект Array.getItem(индекс)
Возвращает запись по указанному индексу в этом массиве.
Расширение объекта Date
1. String Date.toFormattedString(stringFormat)
Отформатируйте и выведите объект Date в соответствии с входной строкойFormat (слишком много строк формата... Мне лень их писать. Если они вам нужны, просто посмотрите строки 748-871 в Atlas.js).
Расширение объекта Number
1. Number Number.parse(string)
Попробуйте проанализировать входящую строку как число.
2. Строка 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 = function();
{
// объект
}
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("BaseClass");
Вызов переопределенного метода базового класса
DerivedClass = function();
{
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"]);
пространство имен
RegisterNamespace("Web.Utility");
// Реализация веб-утилиты
RegisterNamespace("Web.Performance");
// Производительность реализации
определяет тип Enum
var theEnum = Type.createEnum("name1","name2");
for (var strItems в theEnum.getValues())
{}
Определить тип флага
var theFlags = Type.createFlags("name1",value1,"name2",value2,);