Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mencapai Enkapsulasi dengan Kaedah Peribadi dalam JavaScript?

Bagaimana untuk Mencapai Enkapsulasi dengan Kaedah Peribadi dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-03 08:09:29544semak imbas

How to Achieve Encapsulation with Private Methods in JavaScript?

Kaedah Peribadi dalam JavaScript

Merangkum data dan kaedah dalam kelas ialah prinsip asas dalam pengaturcaraan berorientasikan objek. Dalam JavaScript, walau bagaimanapun, mentakrifkan kaedah persendirian dalam kelas boleh menjadi mencabar.

Mencipta Kaedah Awam

Untuk mencipta kaedah awam dalam JavaScript, kami biasanya menggunakan prototaip harta:

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

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

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

Pengguna boleh mengakses kaedah ini seperti berikut:

<code class="javascript">var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();</code>

Mentakrifkan Kaedah Peribadi

Untuk mencipta kaedah peribadi yang hanya boleh diakses oleh kaedah lain dalam kelas, kita boleh mentakrifkannya di luar prototaip:

<code class="javascript">function Restaurant() {
    var private_stuff = function() {  // Only visible inside Restaurant()
        // Do something
    };

    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>

Keterbatasan

Pendekatan ini mempunyai kelemahan: kaedah persendirian tidak boleh sebahagian daripada prototaip. Ini bermakna mereka tidak boleh diakses terus daripada contoh kelas:

<code class="javascript">var r = new Restaurant();
r.private_stuff(); // This will not work</code>

Oleh itu, kaedah persendirian hanya boleh dipanggil melalui kaedah awam dalam kelas yang sama. Walaupun ini mungkin memberikan beberapa tahap pengkapsulan, ia tidak sekukuh kaedah persendirian sebenar yang terdapat dalam bahasa pengaturcaraan lain.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Enkapsulasi dengan Kaedah Peribadi dalam JavaScript?. 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