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?
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!