مقدمة
دعنا نلخص سكر بناء الجملة JavaScript ، لقد تلامس مع ذلك مؤخرًا وشاركه معك.
كل قطعة من الحلوى لديها تعليمات وأمثلة مفصلة ، لذلك لن أقول الكثير.
فحص نوع دقيق
نسخة الكود كما يلي:
/*
* @وظيفة:
* اكتب مثال تحقق
* تتيح لك هذه الطريقة التحقق مما إذا كان المتغير هو نوع البيانات المتوقع
* params:
* متغيرات OBJ التي يجب التحقق منها ، مطلوبة
* تكوين نوع بيانات القائمة البيضاء ، اختياري ، افتراضي لجميع الأنواع
* @يعود:
* صحيح يعني أن الشيك قد تم تمريره ، فشل خطأ
* examples:
* typecheck ("str") ؛ // إرجاع صحيح
* typeCheck ({} ، {"[كائن صفيف]": 1}) ؛ // إرجاع خطأ
*/
وظيفة TypeCheck (OBJ ، التكوين) {
var hasop = object.protype.hasownproperty ،
tostr = object.prototype.tostring ،
_config = config || {
"[كائن كائن]": 1 ،
"[صفيف الكائن]": 1 ،
"[كائن regex]": 1 ،
"[سلسلة الكائن]": 1 ،
"[رقم الكائن]": 1 ،
"[كائن منطقي]": 1 ،
"[وظيفة الكائن]": 1 ،
"[كائن غير محدد]": 1 ،
"[كائن فارغ]": 1
} ؛
return hasop.call (_config ، tostr.call (obj)) ؛
}
طريقة أنيقة لإضافة نماذج أولية
نسخة الكود كما يلي:
/*
* @وصف:
* طريقة أنيقة لإضافة النماذج الأولية
* فقط قم بتنفيذ مقتطف الرمز هذا في النطاق العام
*/
if (typeof function.prototype.method! == "وظيفة") {
function.prototype.method = function (name ، fn) {
this.prototype [name] = fn ؛
إرجاع هذا ؛
} ؛
}
/*
* مثال الاستخدام
*/
// تحديد "فئة الاختبار"
وظيفة testfn () {
}
// إضافة طريقة عضو فئة الاختبار
testfn.method ("Add" ، Function (a ، b) {
إرجاع A + B ؛
}). الطريقة ("sub" ، الدالة (a ، b) {
إرجاع أ - ب ؛
}) ؛
// instantiation
var testobj = new testfn () ؛
// استدعاء طريقة العضو
testobj.add (1،5) ؛ // العودة 6
Testobj.sub (7،2) ؛ // العودة 5
قم بإنشاء مساحة اسم بسرعة
نسخة الكود كما يلي:
/*
* @وظيفة:
* إنشاء مساحة اسم
* params:
* تعبير مساحة الاسم السابقين ، على سبيل المثال: nsroot.service.impl
* يجب أن يبدأ هذا التعبير من عقدة الجذر
* @يعود:
* إرجاع كائن ، وهو العقدة الأخيرة من التعبير
* @آحرون:
* إذا كنت لا تحب اسم nsroot ، فما عليك سوى البحث عن البديل
*/
var nsroot = nsroot || {} ؛
nsroot.namespace = function (ex) {
var _ex = ex || "" ،
nsarray = _ex.split (".") ،
ParentNode = nsroot ،
_s = "" ،
أنا = 0 ؛
// احكم على ما إذا كانت مساحة الاسم تبدأ من عقدة الجذر
if (nsarray [0]! == "nsroot") {
رمي ("يجب أن تبدأ مساحة الاسم من عقدة الجذر!") ؛
}
// قم بإزالة عقدة الجذر
nsarray = nsarray.slice (1) ؛
لـ (i = 0 ؛ i <nsarray.length ؛ i ++) {
_s = nsarray [i] ؛
if (parentNode [_s] === undefined) {
ParentNode [_s] = {} ؛
}
ParentNode = parentNode [_s] ؛
}
إرجاع ParentNode ؛
} ؛
/*
* مثال الاستخدام
*/
// إنشاء مساحة اسم جديدة
var impl = nsroot.namespace ("nsroot.service.impl") ؛
التنبيه (INSL === nsroot.service.impl) ؛ // إرجاع صحيح
// قم بإنشاء مساحة اسم موجودة دون الكتابة فوق البيانات الأصلية
nsroot.namespace ("nsroot.service.impl") ؛
التنبيه (INSL === nsroot.service.impl) ؛ // إرجاع صحيح