JavaScript adalah bahasa Berbasis Objek yang sangat kuat, namun dukungannya untuk Berorientasi Objek masih memiliki beberapa kekurangan. Pada saat yang sama, perpustakaan kelas bawaan JavaScript relatif sederhana dan bahkan tidak memiliki semua 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.
Perpanjangan objek String
1. String String.ltrim()
Menghapus semua spasi di awal String asli dan mengembalikan objek String baru.
2. String String.rtrim()
Menghapus semua spasi di akhir String asli dan mengembalikan objek String baru.
3. String String.trim()
Menghapus semua spasi di awal dan akhir String asli dan mengembalikan objek String baru.
4. String Boolean.endsWidth(strEnd)
Apakah String ini diakhiri dengan string yang diteruskan.
5. String Boolean.mulaiDengan(strMulai)
Apakah String ini dimulai dengan String yang diteruskan.
6. 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.
7. String String.hapusSpaces()
Menghapus semua spasi dari String asli dan mengembalikan objek String baru.
8. String String.hapusExtraSpaces()
Ganti spasi berurutan dalam String asli dengan spasi tunggal (termasuk pengangkutan kembali) dan kembalikan objek String baru.
9. 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.
Perpanjangan objek Array
1. void Array.queue(objValue) dan void Array.add(objValue)
Menyisipkan objValue yang ditentukan ke akhir Array ini.
2. batal Array.addRange(rangeArray)
Tambahkan rangeArray yang ditentukan ke akhir Array.
3. Boolean Array.berisi(objValue) dan Boolean Array.ada(objValue)
Mengembalikan nilai Boolean yang menunjukkan apakah Array berisi item objValue.
4. Array Array.klon()
Mengembalikan salinan dangkal dari Array ini.
5. batal Array.insert(indeks, objValue)
Masukkan objValue yang ditentukan ke dalam posisi indeks Array.
6. Array Objek.dequeue()
Menghapus dan mengembalikan entri pertama dalam Array ini.
7. Objek Array.removeAt(indeks)
Menghapus dan mengembalikan entri pada indeks yang ditentukan dalam Array ini.
8.Boolean Array.hapus(objValue)
Menghapus entri objValue yang ditentukan dari Array dan mengembalikan nilai Boolean yang menunjukkan apakah entri tersebut ada dan berhasil dihapus.
9. Array Array.parse(string)
Parsing Array masuk yang diwakili oleh string menjadi Array.
10. batalkan Array.hapus()
Hapus semua entri dalam Array ini.
11. Array Integer.get_length()
Mengembalikan jumlah entri dalam Array ini, setara dengan Array.length.
12. Array Objek.getItem(indeks)
Mengembalikan entri pada indeks yang ditentukan dalam Array ini.
Perpanjangan objek Tanggal
1. 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
1. Number Number.parse(string)
Cobalah untuk mengurai string yang masuk sebagai Nomor.
2. 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.append("</div>");
someDOMElem.innerHTML = sb.toString();
Dukungan berorientasi objek
mendefinisikan kelas dasar yang dapat diwarisi
BaseClass = function()
{
// 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");
}
BaseClass.registerClass("BaseClass");
Panggil metode yang diganti dari kelas dasar
DerivedClass = function()
{
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"]);
namespace
registerNamespace("Web.Utility");
// Menerapkan Utilitas Web
registerNamespace("Web.Kinerja");
// Implement Performance
mendefinisikan tipe Enum
var theEnum = Type.createEnum("name1","name2");
untuk (var strItems di theEnum.getValues())
{}
Mendefinisikan tipe Bendera
var theFlags = Type.createFlags("name1",value1,"name2",value2,);