Bagi soalan ujian bertulis yang saya temui hari ini, sila berikan saya beberapa jawapan
A.js dan b.js memerlukan satu sama lain, adakah mereka akan jatuh ke dalam gelung yang tidak terhingga? Bolehkah hasilnya dieksport? Bagaimana untuk mengelakkan masalah ini?
Ini adalah untuk mengkaji pemuatan kitaran modul JavaScript
Anda boleh menggunakan mekanisme modul es6 untuk mengatasi masalah ini, pengendalian "pemuatan kitaran" ES6 secara asasnya berbeza daripada CommonJS. ES6 tidak peduli sama ada "pemuatan gelung" berlaku, ia hanya menjana rujukan kepada modul yang dimuatkan Pembangun perlu memastikan bahawa nilai boleh diperolehi apabila nilai sebenarnya diperoleh.
Jika anda faham secara literal, gunakan sahaja
Maka masalah ini boleh difahami sebagai masalah rujukan pekeliling dalam CommonJS. Pendekatan CommonJS ialah apabila modul "dimuatkan gelung", hanya bahagian yang dilaksanakan akan menjadi output, dan bahagian yang tidak dilaksanakan tidak akan dikeluarkan.
Jika anda memahami rujukan pekeliling antara dua modul secara konsep, ia juga melibatkan rujukan modul es6.
ES6 tidak peduli sama ada "pemuatan gelung" berlaku, ia hanya menjana rujukan kepada modul yang dimuatkan Pembangun perlu memastikan bahawa nilai boleh diperolehi apabila nilai sebenarnya diperoleh.
Hanya menggunakan CommonJs atau hanya menggunakan esm (modul es6) tidak akan menyebabkan gelung tak terhingga. Tetapi ia boleh berlaku jika anda mencampurkan kedua-duanya.
Saya mengesyorkan blog Ruan Yifeng, yang ditulis dengan sangat baik.
http://www.ruanyifeng.com/blo...