Perbezaan: 1. Modul CommonJS dimuatkan pada masa jalan, manakala modul ES6 ialah antara muka keluaran pada masa penyusunan; salinan cetek modul, dan ES6 ialah pengenalan modul.
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
CommonJS
Untuk jenis data asas, ia adalah salinan. Iaitu, ia akan dicache oleh modul. Pada masa yang sama, pembolehubah yang dikeluarkan oleh modul ini boleh ditugaskan semula dalam modul lain.
Untuk jenis data yang kompleks, ia adalah salinan cetek. Memandangkan objek yang dirujuk oleh dua modul menghala ke ruang memori yang sama, pengubahsuaian kepada nilai modul akan menjejaskan modul yang lain.
Apabila modul dimuatkan menggunakan arahan memerlukan, kod keseluruhan modul akan dijalankan.
Apabila arahan memerlukan digunakan untuk memuatkan modul yang sama, modul tidak akan dilaksanakan semula, tetapi nilai dalam cache akan diperolehi. Dalam erti kata lain, tidak kira berapa kali modul CommonJS dimuatkan, ia hanya akan dijalankan sekali apabila ia dimuatkan untuk kali pertama Jika ia dimuatkan kemudian, hasil larian pertama akan dikembalikan, melainkan cache sistem dibersihkan secara manual.
Apabila memuatkan dalam gelung, ia dilaksanakan semasa pemuatan. Iaitu, apabila kod skrip diperlukan, semuanya akan dilaksanakan. Sebaik sahaja modul "dimuatkan gelung", hanya bahagian yang dilaksanakan akan dikeluarkan, dan bahagian yang tidak dilaksanakan tidak akan dikeluarkan.
Modul ES6
Nilai dalam modul ES6 tergolong dalam [rujukan baca sahaja dinamik].
Untuk baca sahaja, iaitu nilai pembolehubah yang diimport tidak dibenarkan diubah suai Pembolehubah yang diimport ialah baca sahaja, sama ada jenis data asas atau a jenis data yang kompleks. Apabila modul menemui arahan import, rujukan baca sahaja dijana. Apabila skrip benar-benar dilaksanakan, nilai akan diambil daripada modul yang dimuatkan berdasarkan rujukan baca sahaja ini.
Untuk dinamik, apabila nilai asal berubah, nilai yang dimuatkan oleh import juga akan berubah. Sama ada jenis data asas atau jenis data yang kompleks.
Apabila memuatkan dalam gelung, modul ES6 dirujuk secara dinamik. Selagi beberapa rujukan wujud antara kedua-dua modul, kod tersebut akan dapat dilaksanakan.
Perbezaan antara modul ES6 dan modul CommonJS
1 Modul CommonJS dimuatkan pada masa jalan, manakala modul ES6 ialah antara muka keluaran pada masa penyusunan .
2. Keperluan() modul CommonJS memuatkan modul secara serentak, manakala perintah import modul ES6 dimuatkan secara tidak segerak, dengan fasa resolusi bebas untuk kebergantungan modul.
3. CommonJS ialah salinan cetek modul, dan Modul ES6 ialah pengenalan modul iaitu, Modul ES6 hanya baca sahaja dan tidak boleh mengubah nilainya penunjuk tidak boleh diubah, serupa dengan const.
4. Antara muka import ialah baca sahaja (status baca sahaja), dan nilai pembolehubahnya tidak boleh diubah suai. Iaitu, penunjuk yang menunjuk kepada pembolehubahnya tidak boleh diubah suai, tetapi penunjuk dalaman yang menunjuk kepada pembolehubah boleh diubah. Anda boleh menetapkan semula pasangan commonJS (tukar penunjuk penunjuk), tetapi memberikan nilai kepada Modul ES6 akan mengakibatkan ralat penyusunan.
Persamaan modul ES6 dan modul CommonJS:
1 Kedua-dua Modul CommonJS dan ES6 boleh menetapkan nilai kepada objek yang diimport, iaitu, berikan nilai. kepada sifat dalaman objek berubah.
[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Apakah perbezaan antara modulariti commonjs dan es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!