في تطورنا اليومي ، غالبًا ما نواجه موقفًا نريد إجراء وظيفة مرة واحدة فقط ، خاصةً عندما تكون بعض الحلقات أو التنفيذ المحدد.
بدون مزيد من اللغط ، فقط قم بتحميل الكود:
دالة RunOnce (fn ، السياق) {// التحكم في الوظيفة لإرجاع وظيفة الإرجاع () {try {fn.apply (context || هذا ، الوسائط) ؛ } catch (e) {console.error (e) ؛ // عمومًا يمكنك التعليق على هذا السطر} أخيرًا {fn = null ؛ }}} // الاستخدام 1: var a = 0 ؛ var canonlyfireonce = runonce (function () {a ++ ؛ console.log (a) ؛}) ؛ canonlyfireonce () ؛ // 1CanonlyFireonce () ؛ // لا شيء canonlyfireonce () ؛ // لا شيء // الاستخدام 2: var name = "Zhang San" ؛ var canonlyfireonce = runonce (function () {console.log ("hello" + this.name) ؛}) ؛ canonlyfireonce () ؛ // Hello Zhang San CanonlyFireonce () ؛ // لا شيء // الاستخدام 3: var obj = {name: "The Lonely Geese from the World" ، العمر: 24} ؛ var canonlyfireonce = runonce (function () {console.log ("hello" + this.name) ؛} ، obj) ؛ canonlyfireonce () ؛ // hello ، tianya ، canonlyfireonce () ؛ // لا شئلأنه بعد تنفيذ وظيفة الإرجاع مرة واحدة ، يقوم FN = NULL بتعيينها فريدًا ، لذلك لن يتم تنفيذه لاحقًا. انشر رمزًا آخر يشاركه الآخرون عبر الإنترنت ، والمبدأ هو نفسه:
وظيفة مرة واحدة (fn ، السياق) {var result ؛ Return Function () {if (fn) {result = fn.apply (context || هذا ، الوسائط) ؛ fn = null ؛ } نتيجة الإرجاع ؛ ؛ canonlyfireonce () ؛ // "أطلقت!" canonlyfireonce () ؛ // لا شئما ورد أعلاه عبارة عن مجموعة من أمثلة الوظيفة لكي تترك JavaScript تنفذ مرة واحدة فقط. إذا كنت في حاجة إليها ، يمكنك الرجوع إليها.