قم بتنفيذ طريقة على كائن موجود باستخدام Window.setInterval

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

  •  27-09-2019
  •  | 
  •  

سؤال

هل من الممكن تشغيل الطريقة على كائن موجود في مهلة Window.SetInterval. يمكنني محاكاة الشيء نفسه من خلال وجود متغير عالمي واستدعاء طريقة هذا المتغير العالمي في SetInterval ، لكنني أردت أن أعرف ما إذا كان هذا ممكنًا باستخدام الطريقة مباشرة.

مع أطيب التحيات ، كيشاف

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

المحلول

نعم، يمكنك أن تفعل هذا. تحتاج إلى وظيفة مساعد لجعل ملف الجديد الوظيفة التي تحتوي على كائنك الحالي "ملزمة":

var someRandomObject = {
  someMethod: function() {
    // ... whatever
  },
  // ...
};

// this is a "toy" version of "bind"
function bind(object, method) {
  return function() {
    method.call(object);
  };
}

var interval = setInterval(bind(someRandomObject, someRandomObject.someMethod), 1000);

الآن عندما يستدعي جهاز ضبط الوقت الفاصل طريقتك ("Somemethod") ، سيشير المؤشر "هذا" إلى الكائن.

تم تبسيط هذا الإصدار من "BIND". المكتبات مثل النموذج الأولي ، الوظيفي ، jQuery ، إلخ بشكل عام توفر إصدارات أكثر قوة. بالإضافة إلى ذلك ، ستكون وظيفة "bind" جزءًا أصليًا من JavaScript يومًا ما - إنها بالفعل في بعض المتصفحات.

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