JavaScript هي لغة كائنية قوية جدًا، لكن دعمها للغة Object Oriented لا يزال يعاني من بعض العيوب، وفي الوقت نفسه، تعد مكتبة الفئات المدمجة في JavaScript بسيطة نسبيًا، بل وتفتقر إلى جميع الوظائف شائعة الاستخدام. يعمل ASP.NET Atlas على توسيع JavaScript في وقت التشغيل، ويعزز بشكل كبير قدرات الدعم الموجهة للكائنات، ويوسع بعض العمليات شائعة الاستخدام أثناء التطوير.
لقد أشرت إلى ملف Atlas.js وخلصت إلى أن Atlas يحتوي على الامتدادات التالية لجافا سكريبت. هناك بعض النقص أو الخطأ في بعض الأماكن، أرجو أن تسامحوني وتصححوني.
ملحق كائن السلسلة
1. String String.ltrim()
يزيل كل المسافات في بداية السلسلة الأصلية ويعيد كائن سلسلة جديد.
2. سلسلة String.rtrim()
يزيل كافة المسافات في نهاية السلسلة الأصلية ويعيد كائن سلسلة جديد.
3. سلسلة String.trim()
يزيل كل المسافات في بداية ونهاية السلسلة الأصلية ويعيد كائن سلسلة جديد.
4. سلسلة منطقية.endsWidth(strEnd)
ما إذا كانت هذه السلسلة تنتهي بالتمرير في السلسلة.
5. سلسلة منطقية. تبدأ مع (strStart)
ما إذا كانت هذه السلسلة تبدأ بما تم تمريره في String.
6. سلسلة String.format(args1,args2,.)
على غرار String.Format() في C#، سيتم استبدال {n} في السلسلة التي تم التعامل معها بالمعلمة nth المقابلة وسيتم إرجاع كائن سلسلة جديد.
7. سلسلة String.removeSpaces()
إزالة كافة المسافات من السلسلة الأصلية وإرجاع كائن سلسلة جديد.
8. سلسلة String.removeExtraSpaces()
استبدل المسافات المتتالية في السلسلة الأصلية بمسافات مفردة (بما في ذلك أحرف الإرجاع) وقم بإرجاع كائن سلسلة جديد.
9. سلسلة String.removeSpaceDelimitedString(str)
إزالة الكلمات المحددة (أجزاء النص المفصولة بمسافات) من السلسلة الأصلية وإرجاع كائن سلسلة جديد. يمكن استخدام هذه الطريقة عند حذف اسم فئة يحتوي على عناصر DOM بأسماء فئات متعددة.
امتداد كائن المصفوفة
1. void Array.queue(objValue) و void Array.add(objValue)
يقوم بإدراج قيمة objValue المحددة في نهاية هذا الصفيف.
2. باطلة Array.addRange(rangeArray)
أضف rangeArray المحدد إلى نهاية الصفيف.
3. المصفوفة المنطقية تحتوي على (objValue) والمصفوفة المنطقية موجودة (objValue)
تُرجع قيمة منطقية تمثل ما إذا كان الصفيف يحتوي على عنصر objValue.
4. صفيف Array.clone ()
إرجاع نسخة ضحلة من هذه المصفوفة.
5. باطلة Array.insert(index, objValue)
أدخل قيمة objValue المحددة في موضع الفهرس الخاص بالمصفوفة.
6. مصفوفة الكائنات.dequeue()
يزيل ويعيد الإدخال الأول في هذا المصفوفة.
7. مصفوفة الكائنات.removeAt(الفهرس)
إزالة وإرجاع الإدخال في الفهرس المحدد في هذه المصفوفة.
8.المصفوفة المنطقية.إزالة (objValue)
إزالة إدخال objValue المحدد من الصفيف وإرجاع قيمة منطقية تشير إلى ما إذا كان الإدخال موجودًا وتمت إزالته بنجاح.
9. صفيف Array.parse (سلسلة)
تحليل المصفوفة الواردة الممثلة بسلسلة إلى مصفوفة.
10. باطلة Array.clear ()
امسح كافة الإدخالات في هذه المصفوفة.
11. عدد صحيح Array.get_length()
تقوم بإرجاع عدد الإدخالات في هذا المصفوفة، أي ما يعادل Array.length.
12. كائن Array.getItem(الفهرس)
إرجاع الإدخال في الفهرس المحدد في هذا الصفيف.
ملحق كائن التاريخ
1. String Date.toFormattedString(stringFormat)
قم بتنسيق كائن التاريخ وإخراجه وفقًا لتنسيق سلسلة الإدخال (هناك عدد كبير جدًا من سلاسل التنسيق... أنا كسول جدًا بحيث لا أستطيع كتابتها. إذا كنت في حاجة إليها، فما عليك سوى إلقاء نظرة على الأسطر 748-871 في Atlas.js).
امتداد كائن الرقم
1. Number Number.parse(string)
حاول تحليل السلسلة الواردة كرقم.
2. رقم السلسلة.toFormattedString(stringFormat)
قم بتنسيق كائن الرقم وإخراجه وفقًا لتنسيق سلسلة الإدخال (لا تزال سلسلة التنسيق أكثر من اللازم... كسول جدًا بحيث لا يمكنك كتابتها، إذا كنت في حاجة إليها، فما عليك سوى إلقاء نظرة على الأسطر 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
");
{
// استدعاء منشئي القاعدة
// الوسيطة الثانية عبارة عن مصفوفة يمكنك استخدامها لتمرير الوسائط
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,"initialize");
}
BaseClass.registerClass("BaseClass");
استدعاء الطريقة التي تم تجاوزها للفئة الأساسية
DerivedClass = function()
{
DerivedClass.initializeBase(this,arguments);
this.initialize = وظيفة ()
{
DerivedClass.getBaseMethod(this،"BaseClass"،"initialize").call(this);
// لتمرير الوسائط إلى الفئة الأساسية:
// .call(هذا,args1,args2,args3)
}
}
"
DerivedClass",["Atlas.Bindings.Base"،"BaseClass"
]);
// تنفيذ أداة الويب
RegisterNamespace("Web.Performance");
// أداء التنفيذ
يحدد نوع التعداد
var theEnum = Type.createEnum("name1"،"name2")؛
لـ (var strItems في theEnum.getValues ())
{}
تعريف نوع العلامة
var theFlags = Type.createFlags("name1",value1,"name2",value2,);