Rumah >hujung hadapan web >tutorial js >Bagaimanakah kita boleh mensimulasikan kaedah persendirian dalam JavaScript untuk enkapsulasi yang dipertingkatkan?

Bagaimanakah kita boleh mensimulasikan kaedah persendirian dalam JavaScript untuk enkapsulasi yang dipertingkatkan?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 15:26:02225semak imbas

How can we simulate private methods in JavaScript for enhanced encapsulation?

Merapatkan Kaedah Awam dan Persendirian dalam JavaScript

Walaupun kaedah awam menyediakan akses luaran kepada fungsi kelas, kaedah persendirian menawarkan operasi terpencil dalam kelas. JavaScript tidak menyokong kaedah persendirian secara asli, tetapi pendekatan inovatif boleh meniru konsep ini.

Pertimbangkan senario berikut:

<code class="javascript">function Restaurant() {}

Restaurant.prototype.buy_food = function(){
   // something here
}

Restaurant.prototype.use_restroom = function(){
   // something here
}</code>

Dalam contoh ini, buy_food dan use_restroom ialah kaedah awam yang boleh diakses di luar kelas. Bagaimanakah kita boleh memperkenalkan kaedah persendirian yang hanya boleh dipanggil oleh kaedah awam ini?

Meniru Kaedah Peribadi dengan Fungsi Setempat

JavaScript tidak mempunyai kaedah persendirian yang sebenar, tetapi ia membolehkan kami mencipta fungsi setempat dalam pembina kelas yang tidak boleh diakses secara luaran. Begini caranya:

<code class="javascript">function Restaurant() {
    var myPrivateVar;

    var private_stuff = function() {  // Only visible inside Restaurant()
        myPrivateVar = "I can set this here!";
    }

    this.use_restroom = function() {  // use_restroom is visible to all
        private_stuff();
    }

    this.buy_food = function() {   // buy_food is visible to all
        private_stuff();
    }
}</code>

Dalam contoh ini, private_stuff ialah fungsi setempat dalam pembina Restoran. Ia bukan sebahagian daripada prototaip dan hanya boleh diakses dengan kaedah use_restroom dan buy_food.

Pendekatan ini mengekalkan pemisahan yang diingini antara kaedah awam dan "peribadi" sambil membenarkan kaedah kedua beroperasi dengan lancar dalam kelas.

Atas ialah kandungan terperinci Bagaimanakah kita boleh mensimulasikan kaedah persendirian dalam JavaScript untuk enkapsulasi yang dipertingkatkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn