جافا سكريبت - كيف يمكنني التعرف على "إغلاق" الاستخدام ؟

StackOverflow https://stackoverflow.com/questions/212401

  •  03-07-2019
  •  | 
  •  

سؤال

من ويكيبيديا, الموسوعة الحرة: إغلاق (علوم الكمبيوتر)

في علوم الكمبيوتر الإغلاق هو الدالة التي يتم تقييمها في البيئة التي تحتوي على واحد أو أكثر لا بد المتغيرات.عندما دعا ، وظيفة يمكن الوصول إلى هذه المتغيرات.صراحة استخدام الإغلاق هو المرتبطة البرمجة الوظيفية و مع لغات مثل مل ، Lisp.يبني مثل الكائنات في لغات أخرى أيضا يمكن أن تكون على غرار مع الإغلاق.

استخدام هذا داخل جافا سكريبت, شخص يمكن أن تشير لي إلى مثال كيف ينطبق هذا?

هل كانت مفيدة؟

المحلول

(باستخدام مثال من مسج)

function SetClassOnHover(className){
  $("td").hover(
    function () {
      $(this).addClass(className);
    },
    function () {
      $(this).removeClass(className);
    }
  );
}

إغلاق يأتي دور عندما متغير className تستخدم داخل نطاق كل وظيفة.عندما SetClassOnHover المخارج كل الوظائف يجب أن تحتفظ التعامل مع className من أجل الوصول إلى قيمته عندما يتم استدعاء الدالات.هذا ما الإغلاق تمكن.

نصائح أخرى

البحث عن "إغلاق جافا سكريبت" أعطى الكثير من التشجيع يبحث الروابط.كانت المراكز الثلاثة هذين (الثالث الرابط كان إخراجها الإصدار الثاني):

إذا لم تساعدك ، يرجى توضيح السبب لذلك نحن في وضع أفضل يمكنها أن تساعد في الواقع.إذا لم يكن البحث قبل طرح السؤال ، حسنا - يرجى القيام بذلك في المرة القادمة :)

مثال عملي من الإغلاق هو عند استخدامها لإنشاء "خاص" المتغيرات ،

function incrementer(){
    var i=0;
    this.increment=function(){
        i++;
    }
    this.get=function(){
        return i;
    }
}

السبيل الوحيد للوصول إلى استخدام الأسلوب و الطريقة الوحيدة لتغيير ذلك هو استخدام طريقة الاضافة.في الطبقات ، يمكنك القيام بذلك على محاكاة المتغيرات الخاصة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top