작성자: Dflying Chen ( http://dflying.cnblogs.com/ )
JavaScript는 매우 강력한 객체 기반 언어이지만 객체 지향에 대한 지원에는 여전히 일부 결함이 있습니다. 구축된 클래스 라이브러리도 상대적으로 단순하며 모든 것이 부족합니다. 일반적으로 사용되는 기능. ASP.NET Atlas는 런타임 시 JavaScript를 확장하고, 개체 지향 지원 기능을 크게 향상시키며, 개발 중에 일반적으로 사용되는 일부 작업을 확장합니다.
저는 Atlas.js 파일을 참조하여 Atlas가 JavaScript에 대해 다음과 같은 확장 기능을 가지고 있다는 결론을 내렸습니다. 누락된 부분이나 오류가 있는 부분이 있으니 양해해 주시고 정정해 주시기 바랍니다.
String 객체 확장
String String.ltrim()
원래 문자열의 시작 부분에서 모든 공백을 제거하고 새 문자열 개체를 반환합니다.
문자열 String.rtrim()
원래 문자열 끝의 공백을 모두 제거하고 새 문자열 객체를 반환합니다.
문자열 String.trim()
원래 문자열의 시작과 끝에서 모든 공백을 제거하고 새 문자열 개체를 반환합니다.
부울 String.endsWidth(strEnd)
이 문자열이 전달된 문자열로 끝나는지 여부입니다.
부울 String.startsWith(strStart)
이 문자열이 전달된 문자열로 시작하는지 여부입니다.
문자열 String.format(args1,args2,.)
C#의 String.Format()과 유사하게 조작된 String의 {n}은 해당 n번째 매개 변수로 대체되고 새 String 개체가 반환됩니다.
문자열 String.removeSpaces()
원래 String에서 모든 공백을 제거하고 새 String 개체를 반환합니다.
문자열 String.removeExtraSpaces()
원래 문자열의 연속 공백을 단일 공백(캐리지 리턴 포함)으로 바꾸고 새 String 개체를 반환합니다.
문자열 String.removeSpaceDelimitedString(str)
원래 String에서 지정된 단어(공백으로 구분된 텍스트 조각)를 제거하고 새 String 개체를 반환합니다. 이 방법은 여러 클래스 이름을 가진 DOM 요소가 포함된 클래스 이름을 삭제할 때 사용할 수 있습니다.
배열 객체의 확장
void Array.queue(objValue) 및 void Array.add(objValue)
지정된 objValue를 이 배열의 끝에 삽입합니다.
무효 Array.addRange(rangeArray)
지정된 rangeArray를 배열 끝에 추가합니다.
부울 Array.contains(objValue) 및 부울 Array.exists(objValue)
배열에 objValue 항목이 포함되어 있는지 여부를 나타내는 부울 값을 반환합니다.
배열 Array.clone()
이 배열의 얕은 복사본을 반환합니다.
무효 Array.insert(index, objValue)
지정된 objValue를 배열의 인덱스 위치에 삽입합니다.
ObjectArray.dequeue()
이 배열의 첫 번째 항목을 제거하고 반환합니다.
객체 Array.removeAt(색인)
이 배열의 지정된 인덱스에 있는 항목을 제거하고 반환합니다.
부울 배열.remove(objValue)
배열에서 지정된 objValue 항목을 제거하고 해당 항목이 존재하며 성공적으로 제거되었는지 여부를 나타내는 부울 값을 반환합니다.
배열 Array.parse(문자열)
문자열로 표시되는 수신 배열을 배열로 구문 분석합니다.
무효 Array.clear()
이 배열의 모든 항목을 지웁니다.
정수 Array.get_length()
Array.length와 동일한 이 배열의 항목 수를 반환합니다.
객체 Array.getItem(index)
이 배열의 지정된 인덱스에 있는 항목을 반환합니다.
Date 객체의 확장
String Date.toFormattedString(stringFormat)
입력 stringFormat에 따라 Date 객체의 형식을 지정하고 출력합니다(형식 문자열이 너무 많습니다... 작성하기에는 너무 게으릅니다. 필요한 경우 Atlas.js의 748-871행을 보십시오).
Number 객체
Number Number.parse(string)
의 확장
들어오는 문자열을 숫자로 구문 분석해 보세요.
문자열 번호.toFormattedString(stringFormat)
입력 stringFormat에 따라 Number 객체의 형식을 지정하고 출력합니다. 형식 문자열은 여전히 너무 많아서 쓰기에는 너무 게으릅니다. 필요한 경우 Atlas.js의 935-1024행을 살펴보세요.
Sys.StringBuilder 클래스는
C#의 StringBuilder와 유사합니다.
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("BaseClass");
기본 클래스의 재정의된 메서드 호출
파생 클래스 = 함수()
{
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 in theEnum.getValues())
{
}
플래그 유형 정의
var theFlags = Type.createFlags("name1",value1,"name2",value2,);