


Adakah javascript mentakrifkan kaedah peribadi?
JavaScript ialah bahasa pengaturcaraan berorientasikan objek yang menyediakan beberapa kaedah enkapsulasi untuk menyembunyikan data atau kaedah. Dalam JS, kita boleh menggunakan fungsi dan objek untuk mencapai enkapsulasi. Kaedah enkapsulasi yang biasa digunakan ialah menggunakan penutup atau pembina. Walau bagaimanapun, enkapsulasi hanya menswastakan beberapa sifat atau kaedah, tidak benar-benar menswastakannya.
Dalam JavaScript, tiada kaedah peribadi formal. Walau bagaimanapun, kami boleh menggunakan beberapa helah untuk mensimulasikan kaedah persendirian untuk mencapai perlindungan data dan enkapsulasi.
Cara biasa untuk mensimulasikan kaedah peribadi ialah menggunakan penutupan. Kita boleh mentakrifkan beberapa pembolehubah dan fungsi tempatan di dalam fungsi Pembolehubah dan fungsi ini membentuk penutupan dan boleh mengakses pembolehubah dan parameter di dalam fungsi (skop induk). Dari dunia luar, kita tidak boleh mengakses terus pembolehubah dan fungsi ini, sekali gus mencapai tujuan mensimulasikan keperibadian.
Sebagai contoh, kami ingin menentukan objek yang mempunyai kaedah awam dan kaedah persendirian, di mana kaedah persendirian hanya boleh digunakan di dalam objek. Kita boleh menggunakan penutupan untuk mencapai ini:
function MyObject() { this.publicMethod = function() { console.log('This is a public method.'); privateMethod(); }; var privateMethod = function() { console.log('This is a private method.'); }; }
Dalam contoh ini, pembolehubah privateMethod
ditakrifkan di dalam pembina, jadi ia hanya boleh diakses oleh kaedah awam di dalam pembina, dengan itu mencapai Kesan "palsu" daripada kaedah persendirian.
Satu lagi cara biasa untuk melaksanakan kaedah persendirian "palsu" ialah menggunakan konvensyen penamaan. Dengan memulakan nama kaedah dengan _
, kami menunjukkan bahawa kaedah ini adalah peribadi dan tidak boleh dipanggil di luar objek. Sudah tentu, pendekatan ini tidak benar-benar melindungi kaedah, kerana dalam JavaScript kita masih boleh memanggil sifat dan kaedah objek secara langsung.
Dalam ECMAScript 6, kita boleh menggunakan sifat jenis Simbol untuk mencipta kaedah peribadi. Simbol ialah jenis data asas baharu yang boleh digunakan untuk mencipta sifat objek. Oleh kerana sifat jenis Simbol adalah unik, kami boleh menggunakannya untuk mencipta kaedah persendirian untuk memastikan tiada isu dengan konflik nama kaedah. Sebagai contoh, kita boleh mentakrifkan objek seperti ini:
const PRIVATE_METHOD = Symbol(); class MyClass { constructor() { this[PRIVATE_METHOD] = function() { console.log('This is a private method.'); }; } publicMethod() { console.log('This is a public method.'); this[PRIVATE_METHOD](); } } let object = new MyClass(); object.publicMethod(); // 输出 "This is a public method." 和 "This is a private method." object[PRIVATE_METHOD](); // 抛出TypeError异常,因为该方法是私有的
Dalam contoh ini, kita menswastakan kaedah persendirian dengan menggunakan atribut jenis Simbol, memastikan kaedah persendirian tidak boleh diakses di luar objek.
Ringkasnya, JavaScript tidak mempunyai kaedah persendirian langsung, tetapi kami boleh menggunakan penutupan, konvensyen penamaan atau sifat jenis Simbol untuk melaksanakan fungsi kaedah persendirian secara tidak langsung. Dalam pembangunan sebenar, kita perlu memilih cara yang paling sesuai untuk melaksanakan enkapsulasi data mengikut situasi tertentu.
Atas ialah kandungan terperinci Adakah javascript mentakrifkan kaedah peribadi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini membincangkan useeffect dalam React, cangkuk untuk menguruskan kesan sampingan seperti pengambilan data dan manipulasi DOM dalam komponen berfungsi. Ia menerangkan penggunaan, kesan sampingan yang biasa, dan pembersihan untuk mencegah masalah seperti kebocoran memori.

Lazy memuatkan kelewatan memuatkan kandungan sehingga diperlukan, meningkatkan prestasi web dan pengalaman pengguna dengan mengurangkan masa beban awal dan beban pelayan.

Artikel ini menerangkan algoritma perdamaian React, yang dengan cekap mengemas kini DOM dengan membandingkan pokok DOM maya. Ia membincangkan manfaat prestasi, teknik pengoptimuman, dan kesan terhadap pengalaman pengguna. Kira -kira: 159

Fungsi pesanan yang lebih tinggi dalam JavaScript meningkatkan ketabahan kod, kebolehgunaan semula, modulariti, dan prestasi melalui abstraksi, corak umum, dan teknik pengoptimuman.

Artikel ini membincangkan kari dalam JavaScript, teknik yang mengubah fungsi multi-argumen ke dalam urutan fungsi argumen tunggal. Ia meneroka pelaksanaan kari, faedah seperti aplikasi separa, dan kegunaan praktikal, meningkatkan kod baca

Artikel ini menerangkan USEContext dalam React, yang memudahkan pengurusan negara dengan mengelakkan penggerudian prop. Ia membincangkan faedah seperti keadaan terpusat dan penambahbaikan prestasi melalui pengurangan semula yang dikurangkan.

Artikel membincangkan menghalang tingkah laku lalai dalam pengendali acara menggunakan kaedah pencegahanDefault (), faedahnya seperti pengalaman pengguna yang dipertingkatkan, dan isu -isu yang berpotensi seperti kebimbangan aksesibiliti.

Artikel membincangkan penyambungan komponen reaksi ke kedai redux menggunakan Connect (), menerangkan MapStateToprops, MapdispatchToprops, dan kesan prestasi.
