Mencipta Fungsi dalam JavaScript Yang Boleh Laksana Sekali Sahaja
Dalam JavaScript, kadangkala perlu mengehadkan pelaksanaan fungsi kepada satu tika. Walaupun pembolehubah statik boleh mencapai ini dalam bahasa seperti C , JavaScript menawarkan penyelesaian yang lebih elegan melalui penutupan.
Penutupan, fungsi yang mengekalkan konteksnya walaupun selepas skop penutupnya telah tamat, membolehkan penciptaan fungsi yang hanya boleh dipanggil sekali sahaja. Dengan merangkum bendera pelaksanaan dalam penutupan, kami boleh memastikan bahawa ia kekal berterusan dan tidak boleh diakses oleh kod luaran.
Berikut ialah contoh penggunaan penutupan untuk mencipta fungsi boleh laku sekali:
<code class="javascript">var something = (function() { var executed = false; return function() { if (!executed) { executed = true; // do something } }; })(); something(); // "do something" happens something(); // nothing happens</code>
Fungsi ini memastikan bahawa kod yang dilampirkan dalam penutupan hanya dilaksanakan sekali, walaupun terdapat seruan berikutnya.
Sebagai alternatif, jika anda lebih suka pendekatan yang lebih terkapsul, anda boleh menggunakan fungsi utiliti seperti di bawah:
<code class="javascript">function once(fn, context) { var result; return function() { if (fn) { result = fn.apply(context || this, arguments); fn = null; context = null; } return result; }; }</code>
Penggunaan:
<code class="javascript">function something() { /* do something */ } var one_something = once(something); one_something(); // "do something" happens one_something(); // nothing happens</code>
Fungsi utiliti ini mengembalikan fungsi yang menyimpan cache hasil seruan pertama dan melumpuhkan pelaksanaan seterusnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Fungsi dalam JavaScript Yang Melaksanakan Sekali sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!