ในการพัฒนาประจำวันของเราเรามักจะพบกับสถานการณ์ที่เราต้องการให้ฟังก์ชั่นดำเนินการเพียงครั้งเดียวโดยเฉพาะอย่างยิ่งเมื่อลูปหรือการดำเนินการที่กำหนดเวลา
โดยไม่ต้องกังวลใจเพิ่มเติมเพียงอัปโหลดรหัส:
ฟังก์ชั่น runonce (fn, บริบท) {// ควบคุมฟังก์ชันเพื่อทริกเกอร์การส่งคืนฟังก์ชัน () {ลอง {fn.apply (บริบท || สิ่งนี้, อาร์กิวเมนต์); } catch (e) {console.error (e); // โดยทั่วไปคุณสามารถแสดงความคิดเห็นออกบรรทัดนี้} ในที่สุด {fn = null; }}} // การใช้งาน 1: var a = 0; var canonlyfireonce = runonce (ฟังก์ชัน () {a ++; console.log (a);}); Canonlyfireonce (); // 1CanonlyFireonce (); // ไม่มีอะไร Canonlyfireonce (); // ไม่มีอะไร // การใช้งาน 2: var name = "Zhang San"; var canonlyfireonce = runonce (function () {console.log ("hello" + this.name);}); canonlyfireonce (); // สวัสดีจางซาน Canonlyfireonce (); // ไม่มีอะไร // การใช้งาน 3: var obj = {ชื่อ: "ห่านโดดเดี่ยวจากโลก", อายุ: 24}; var canonlyfireonce = runonce (ฟังก์ชั่น () {console.log ("hello" + this.name);}, obj); canonlyfireonce (); // สวัสดี Tianya, Canonlyfireonce (); // ไม่มีอะไรเนื่องจากหลังจากฟังก์ชั่นการส่งคืนถูกดำเนินการหนึ่งครั้ง FN = NULL ตั้งค่าไม่ใช่ NULL ดังนั้นมันจะไม่ถูกดำเนินการในภายหลัง โพสต์รหัสอื่นที่แชร์โดยผู้อื่นทางออนไลน์หลักการเหมือนกัน:
ฟังก์ชั่นหนึ่งครั้ง (fn, บริบท) {ผลลัพธ์ var; return function () {ถ้า (fn) {result = fn.apply (บริบท || สิ่งนี้, อาร์กิวเมนต์); fn = null; } ผลตอบแทนผลลัพธ์; };} // USAGEVAR CONONLYFIREONCE = หนึ่งครั้ง (ฟังก์ชั่น () {console.log ('ถูกไล่ออก!');}); Canonlyfireonce (); // "ยิง!" Canonlyfireonce (); // ไม่มีอะไรด้านบนเป็นชุดของฟังก์ชั่นตัวอย่างเพื่อให้คุณปล่อยให้ JavaScript ดำเนินการเพียงครั้งเดียว หากคุณต้องการคุณสามารถอ้างอิงได้