في الآونة الأخيرة ، قمت بإعادة بناء الأشياء وواجهت إعدادات مساحة الاسم. لقد بحثت عن بعض المعرفة ، وسأل بعض الخبراء ، وكتبت تجربتي.
أعتقد أن الجميع يعلم أن النافذة من الدرجة الأولى ، لذلك لن أكتب نافذة هنا ، لذلك سأتجاهلها أولاً
1: عن الأعلى
نسخة الكود كما يلي: var ns = ns || {} ؛
يمكن ملاحظة أنه إذا وجدت أنه لا يوجد مثل هذا الكائن ، فستقوم تلقائيًا بإنشاء كائن جديد () ؛ إذا كان هناك ، فسوف تستخدم هذا الكائن مباشرة ، بحيث لا يتم الكتابة عليه.
2: المستوى الثاني ، بالطبع ، يمكنك أيضًا إنشاء المستوى الثاني ضمن المستوى الأعلى NS ، أي ،
نسخة الكود كما يلي: ns.moduleClass = {} ؛
يمكنك أن ترى أنه يتم إنشاء فئة تحت NS ، وبالطبع يمكنك الاستمرار في إنشاء الأساليب في الفصل ، أي هذا هو:
نسخة الكود كما يلي: ns.moduleclass.method1 = function () {/////} ؛
3: كيفية القيام بمستويات متعددة ، مثل com.qw.view. أريد ضبطه في مساحة اسم. يتطلب ذلك تعيين مساحة الاسم لكل اسم مفصل للنقطة وإعداده في كائن.
دعونا نلقي نظرة على مثال ونضعه تحت النافذة:
نسخة الكود كما يلي:
مساحة الاسم وظيفة (sspace) {
var arr = sspace.split ('.') ، i = 0 ، namei ؛
var root = window ؛
لـ (؛ namei = arr [i ++] ؛) {
if (! root [namei]) {
الجذر [namei] = {} ؛
}
الجذر = الجذر [namei] ؛
}
جذر العودة
}
يمكنك أن ترى أنه بالفعل ما ذكرته أعلاه. لقد استخدمت اجتيازًا لتعيين جميع تلك المنفصلة في كائنات ، بحيث يمكن استخدام كل واحد منفصل بشكل منفصل.
4: اذكر النصائح الشائعة الاستخدام والبسيطة والسريعة لإعداد مساحات الأسماء
نسخة الكود كما يلي:
if (! window.ns) {
window.ns = {} ؛
}
var ns ؛
if (typeof ns == "undefined") {
ns = {} ؛
}
if (typeof ns.classname == "undefined") {
ns.className = {} ؛
}