إغلاق JavaScript هي ميزة التنمية النشطة والتطوير السلبي. وهذا يعني ، من ناحية ، لدى JS إغلاق لحل بعض المشكلات بشكل أفضل. من ناحية أخرى ، من أجل حل بعض المشكلات ، يتعين على JS استخدام عمليات الإغلاق لحل المشكلات بالكاد.
السابق لم يناقش هنا. إذا تمكنت إغلاق JS من حل المشكلة ، بالطبع ، يكون استخدام الإغلاق أفضل.
ما أناقشه هو الأخير بسبب قيود JS نفسها ، والمشكلة التي يجب حلها مع الإغلاق ، مثل متطلبات "تهيئة المتغيرات مرة واحدة فقط".
اللغة التقليدية تحل هذا:
نسخة الكود كما يلي:
فئة الفئة {
وظيفة init () {
this.n = 0 ؛
}
وظيفة func () {
this.n ++ ؛
إرجاع هذا.
}
}
var obj = new class () ؛
يتم حل JavaScript بشكل عام بهذه الطريقة (باستخدام عمليات الإغلاق):
نسخة الكود كما يلي:
var obj = {
FUNC: (Function () {
var n = 0 ؛
وظيفة الإرجاع () {
n ++ ؛
العودة ن ؛
}
}) ()
}
لكنني أوصي بهذه الطريقة (القضاء على الإغلاق):
نسخة الكود كما يلي:
فئة الوظائف () {
var self = this ؛
self.n = 0 ؛
self.func = function () {
self.n ++ ؛
العودة self.n ؛
}
}
var obj = new class () ؛
لأن هذا الأخير أكثر قابلية للتطوير. عندما تحتاج إلى تنفيذ عمليات مختلفة على متغير ، يمكن أن يحدد الأخير وظيفة مختلفة (أي التوسع الخطي البسيط) ، في حين أن الإغلاق السابق (الإغلاق) يحتاج إلى إعادة كتابة بالكامل (ولهذا السبب غالبًا ما تسمع كلمة إعادة إنشاء).