Penulis: Dflying Chen ( http://dflying.cnblogs.com/ )
JavaScript adalah bahasa Berbasis Objek yang sangat kuat, namun masih ada beberapa kekurangan dalam dukungannya terhadap Berorientasi Objek. Pustaka kelas yang dibangun juga relatif sederhana bahkan kurang semuanya fungsi yang umum digunakan. ASP.NET Atlas memperluas JavaScript saat runtime, sangat meningkatkan kemampuan dukungan berorientasi objek, dan memperluas beberapa operasi yang umum digunakan selama pengembangan.
Saya merujuk ke file Atlas.js dan menyimpulkan bahwa Atlas memiliki ekstensi JavaScript berikut. Ada beberapa kekurangan atau kesalahan di beberapa tempat, mohon maaf dan koreksi.
Ekstensi objek string
String String.ltrim()
Menghapus semua spasi di awal String asli dan mengembalikan objek String baru.
String String.rtrim()
Menghapus semua spasi di akhir String asli dan mengembalikan objek String baru.
String String.trim()
Menghapus semua spasi di awal dan akhir String asli dan mengembalikan objek String baru.
String Boolean.endsWidth(strEnd)
Apakah String ini diakhiri dengan string yang diteruskan.
String Boolean.mulaiDengan(strMulai)
Apakah String ini dimulai dengan String yang diteruskan.
String String.format(args1,args2,.)
Mirip dengan String.Format() di C#, {n} di String yang dimanipulasi akan digantikan oleh parameter ke-n yang sesuai dan objek String baru akan dikembalikan.
String String.hapusSpaces()
Menghapus semua spasi dari String asli dan mengembalikan objek String baru.
String String.hapusExtraSpaces()
Ganti spasi berurutan dalam String asli dengan spasi tunggal (termasuk pengangkutan kembali) dan kembalikan objek String baru.
String String.removeSpaceDelimitedString(str)
Menghapus kata-kata tertentu (fragmen teks yang dipisahkan spasi) dari String asli dan mengembalikan objek String baru. Cara ini dapat digunakan ketika menghapus nama kelas yang mengandung elemen DOM dengan beberapa nama kelas.
Ekstensi objek Array
void Array.queue(objValue) dan void Array.add(objValue)
Menyisipkan objValue yang ditentukan ke akhir Array ini.
batal Array.addRange(rangeArray)
Tambahkan rangeArray yang ditentukan ke akhir Array.
Boolean Array.berisi(objValue) dan Boolean Array.ada(objValue)
Mengembalikan nilai Boolean yang menunjukkan apakah Array berisi item objValue.
Array Array.klon()
Mengembalikan salinan dangkal dari Array ini.
batal Array.masukkan(indeks, objValue)
Masukkan objValue yang ditentukan ke dalam posisi indeks Array.
ObjectArray.dequeue()
Menghapus dan mengembalikan entri pertama dalam Array ini.
Array Objek.removeAt(indeks)
Menghapus dan mengembalikan entri pada indeks yang ditentukan dalam Array ini.
Boolean Array.hapus(objValue)
Menghapus entri objValue yang ditentukan dari Array dan mengembalikan nilai Boolean yang menunjukkan apakah entri tersebut ada dan berhasil dihapus.
Array Array.parse(string)
Parsing Array masuk yang diwakili oleh string menjadi Array.
batal Array.hapus()
Hapus semua entri dalam Array ini.
Array Integer.get_length()
Mengembalikan jumlah entri dalam Array ini, setara dengan Array.length.
Array Objek.getItem(indeks)
Mengembalikan entri pada indeks yang ditentukan dalam Array ini.
Perpanjangan objek Tanggal
String Date.toFormattedString(stringFormat)
Format dan output objek Date sesuai dengan input stringFormat (format string terlalu banyak... Saya terlalu malas untuk menulisnya. Jika Anda membutuhkannya, lihat saja baris 748-871 di Atlas.js).
Perpanjangan objek Number
Number Number.parse(string)
Cobalah untuk mengurai string yang masuk sebagai Nomor.
Nomor String.toFormattedString(stringFormat)
Format dan output objek Number sesuai input stringFormat (format stringnya masih terlalu banyak... males nulisnya, kalau perlu lihat saja baris 935-1024 di Atlas.js).
Kelas Sys.StringBuilder
mirip dengan StringBuilder di C#:
var sb = new Sys.StringBuilder();
sb.tambahkan("<div>");
sb.appendLine("sebaris teks");
sb.tambahkan("</div>");
someDOMElem.innerHTML = sb.toString();
Dukungan berorientasi objek mendefinisikan kelas dasar yang dapat diwarisi
Kelas Dasar = fungsi()
{
// objek
}
BaseClass.registerClass("BaseClass");
Kelas yang diwarisiKelasDerivedClass
= fungsi()
{
// Memanggil konstruktor dasar
// Argumen ke-2 adalah array yang bisa Anda gunakan untuk meneruskan argumen
DerivedClass.intializeBase(ini,argumen);
}
DerivedClass.registerClass("DerivedClass","BaseClass");
Warisan
bergandaMultipleInherit= fungsi()
{
MultipleInherit.intializeBase(ini,argumen); // bootstrap
// objek
}
MultipleInherit.registerClass("MultipleInherit",["BaseClass", "DerivedClass"]);
Tentukan metode yang dapat diganti
BaseClass = function()
{
// objek
ini.inisialisasi = fungsi()
{
}
BaseClass.registerBaseMethod(ini,"inisialisasi");
}
Kelas Dasar.registerClass("Kelas Dasar");
Panggil metode kelas dasar yang diganti
Kelas Turunan = fungsi()
{
DerivedClass.initializeBase(ini,argumen); // bootstrap
ini.inisialisasi = fungsi()
{
DerivedClass.getBaseMethod(ini,"BaseClass","inisialisasi").panggilan(ini);
// Untuk meneruskan argumen ke kelas dasar:
// .panggilan(ini,args1,args2,args3)
}
}
DerivedClass.registerClass("DerivedClass",["Atlas.Bindings.Base","BaseClass"]);
NamespaceregisterNamespace
("Web.Utility");
// Menerapkan Utilitas Web
registerNamespace("Web.Kinerja");
// Implementasi Kinerja
Tentukan tipe Enum var theEnum = Type.createEnum("name1","name2");
untuk (var strItems di theEnum.getValues())
{
}
Tentukan jenis Bendera
var theFlags = Type.createFlags("nama1",nilai1,"nama2",nilai2,);