著者: Dflying Chen ( http://dflying.cnblogs.com/ )
JavaScript は非常に強力なオブジェクト ベースの言語ですが、オブジェクト指向のサポートにはまだいくつかの欠陥があります。また、構築されたクラス ライブラリも比較的単純で、すべてが欠けています。よく使われる関数。 ASP.NET Atlas は、実行時に JavaScript を拡張し、オブジェクト指向のサポート機能を大幅に強化し、開発中によく使用されるいくつかの操作を拡張します。
Atlas.js ファイルを参照して、Atlas には JavaScript に対する次の拡張機能があると結論付けました。ところどころ、記載漏れや間違いがあるかもしれませんが、ご容赦ください。
文字列オブジェクト拡張
String String.ltrim()
元の String の先頭にあるスペースをすべて削除し、新しい String オブジェクトを返します。
文字列 String.rtrim()
元の String の末尾にあるスペースをすべて削除し、新しい String オブジェクトを返します。
文字列 String.trim()
元の String の先頭と末尾にあるスペースをすべて削除し、新しい String オブジェクトを返します。
ブール文字列.endsWidth(strEnd)
この文字列が渡された文字列で終わるかどうか。
ブール文字列.startsWith(strStart)
この文字列が渡された文字列で始まるかどうか。
文字列 String.format(args1,args2,.)
C# の String.Format() と同様に、操作された String 内の {n} は対応する n 番目のパラメーターに置き換えられ、新しい String オブジェクトが返されます。
文字列 String.removeSpaces()
元の String からすべてのスペースを削除し、新しい String オブジェクトを返します。
文字列 String.removeExtraSpaces()
元の String 内の連続するスペースを単一のスペース (復帰を含む) に置き換えて、新しい String オブジェクトを返します。
文字列 String.removeSpaceDelimitedString(str)
指定された単語 (スペースで区切られたテキストの断片) を元の String から削除し、新しい String オブジェクトを返します。このメソッドは、複数のクラス名を持つ DOM 要素を含むクラス名を削除する場合に使用できます。
Array オブジェクトの拡張機能
void Array.queue(objValue) および void Array.add(objValue)
指定された objValue をこの配列の末尾に挿入します。
void Array.addRange(rangeArray)
指定された rangeArray を Array の末尾に追加します。
Boolean Array.contains(objValue) および Boolean Array.exists(objValue)
配列に objValue 項目が含まれるかどうかを表すブール値を返します。
配列 Array.clone()
この配列の浅いコピーを返します。
void Array.insert(index, objValue)
指定された objValue を配列のインデックス位置に挿入します。
ObjectArray.dequeue()
この配列の最初のエントリを削除して返します。
オブジェクト配列.removeAt(index)
この配列内の指定されたインデックスにあるエントリを削除して返します。
ブール配列.remove(objValue)
指定された objValue エントリを配列から削除し、エントリが存在し、正常に削除されたかどうかを示すブール値を返します。
配列 Array.parse(文字列)
文字列で表される受信配列を解析して配列にします。
void Array.clear()
この配列内のすべてのエントリをクリアします。
整数配列.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 に似ています。
sb.append("<div>");
sb.appendLine("テキスト行");
sb.append("</div>");
someDOMElem.innerHTML = sb.toString();
オブジェクト指向のサポートにより、継承できる基本クラスが定義されます。
BaseClass = 関数()
{
// 物体
}
BaseClass.registerClass("BaseClass");
継承された classDerivedClass
= function();
{
// 基本コンストラクターを呼び出す
// 2 番目の引数は引数を渡すために使用できる配列です
DerivedClass.inializeBase(this,arguments);
}
DerivedClass.registerClass("DerivedClass","BaseClass");
多重
継承MultipleInherit= function();
{
MultipleInherit.inializeBase(this,arguments); // ブートストラップ
// 物体
}
MultipleInherit.registerClass("MultipleInherit",["BaseClass", "DerivedClass"]);
オーバーライドできるメソッドを定義します
BaseClass = function()
{
// 物体
this.initialize = function()
{
}
BaseClass.registerBaseMethod(this,"初期化");
}
BaseClass.registerClass("BaseClass");
基本クラスのオーバーライドされたメソッドを呼び出す
DerivedClass = function()
{
DerivedClass.initializeBase(this,arguments); // ブートストラップ
this.initialize = function()
{
DerivedClass.getBaseMethod(this,"BaseClass","initialize").call(this);
// 引数を基本クラスに渡すには:
// .call(this,args1,args2,args3)
}
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);
名前空間registerNamespace
("Web.Utility");
// Webユーティリティを実装する
registerNamespace("Web.Performance");
// パフォーマンスを実装する
Enum 型を定義します。 var theEnum = Type.createEnum("name1","name2");
for (theEnum.getValues() の var strItems)
{
}
フラグの種類を定義する
var theFlags = Type.createFlags("name1",value1,"name2",value2,);