Rumah >hujung hadapan web >tutorial js >Corak Reka Bentuk Modular di JavaScript
mata teras
apply()
di sini akan digunakan sebagai corak reka bentuk asas, yang merupakan varian corak modul klasik tetapi dengan lebih banyak kawalan. Walaupun beberapa artikel telah menggambarkan corak ini, sedikit yang benar -benar menjelaskan bagaimana mereka bekerja, dan sedikit yang mempunyai set ciri lengkap!
Mod Modul Asas Corak Modul Klasik membungkus semua kod skrip dalam fungsi tanpa nama yang ditugaskan kepada pembolehubah tunggal apabila dikembalikan. Fungsi literal hanyalah fungsi yang memanggil dirinya sendiri, jadi tugasan akhir fungsi literal bukanlah fungsi, tetapi apa -apa nilai yang dikembalikan oleh fungsi tersebut. Untuk memberikan contoh mudah, fungsi literal mengandungi pengiraan, jadi nilai yang diberikan kepada jumlah adalah hasil pengiraan itu: Untuk menggambarkan makna sintaks ini, berikut adalah kod yang sama, dicabut ke dalam fungsi yang dinamakan: Dalam kes ini kita sebenarnya tidak perlu meletakkan kurungan di sekitar ahli awam dan swasta Jadi, dalam fungsi literal kita boleh meletakkan kod lain -seperti pembolehubah, sifat, dan fungsi -dan pelbagai jenis sintaks yang digunakan untuk menentukan data dalaman menentukan ahli awam dan pembahagian antara ahli swasta. Berikut adalah contoh:
dan
Menggunakan mod modul, kami menggunakan dua sintaks yang berbeza untuk mewujudkan perbezaan antara ahli awam dan swasta. Mengungkapkan corak modul adalah varian corak ini yang membolehkan kita menggunakan sintaks yang sama untuk semua pembinaan dalaman, hanya menangguhkan notasi objek literal pada akhirnya untuk mengembalikan (atau mendedahkan) ahli awam. Mari kita lihat objek itu lagi, tetapi kali ini menggunakan mod modul mendedahkan:
<code class="language-javascript">var sum = (function() { return 6 * 7; })();</code>
<code class="language-javascript">function calculate() { return 6 * 7; }
var sum = (calculate)();</code>
calculate
, tetapi apabila menggunakan fungsi tanpa nama, kita perlu berbuat demikian untuk menilainya sebagai ungkapan tunggal tanpa pra-pemberian. <code class="language-javascript">var MyModule = (function() {
var myPrivateData = 303;
function myPrivateFunction() {
alert('private');
}
return {
myPublicData : 42,
myPublicFunction : function() {
alert('public');
}
};
})();</code>
, atribut ini boleh diakses dari luar objek, seperti MyModule
. Tetapi kita tidak boleh mengakses MyModule.myPublicData
atau MyModule.myPublicFunction
kerana pembolehubah hanya boleh diakses dalam skop asalnya. Skop pembolehubah adalah untuk menentukan konteksnya, yang ditentukan oleh pernyataan myPrivateData
. Dalam contoh ini, skop pembolehubah swasta adalah myPrivateFunction
objek, jadi mereka hanya boleh diakses dari dalam objek tersebut. var
MyModule
<code class="language-javascript">var MyModule = (function() {
var myPrivateData = 303;
function myPrivateFunction() {
alert('private');
}
var myPublicData = 42;
function myPublicFunction() {
alert('public');
}
return {
myPublicData : myPublicData,
myPublicFunction : myPublicFunction
};
})();</code>
Corak ini diinovasi oleh Christian Heilmann, yang menjelaskan corak ini dan corak modul yang mendasari dalam artikelnya: sekali lagi menggunakan corak modul - mendedahkan sesuatu kepada dunia.
Atas ialah kandungan terperinci Corak Reka Bentuk Modular di JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!