Saya pada masa ini ingin berkongsi pembolehubah contoh. Sebagai contoh, untuk menyambung ke pangkalan data, selepas ia dijadikan instantiated dalam main.js, modul lain yang ingin menggunakan pangkalan data mesti membuat instantiat semula.
Sebagai contoh main.js
let redisApi;
redisApi = new RedisApi();
user.js
console.log(redisApi);
Pada masa ini, mesej ralat akan dilaporkan yang menunjukkan bahawa pembolehubah redisApi tidak ditentukan!
Tetapi selepas saya beralih kepada menggunakan eval untuk memulakan pembolehubah, ia berbeza
main.js
eval (`let redisApi;`);
redisApi = new RedisApi();
Pada masa ini, modul lain boleh berkongsi pembolehubah redisApi.
Kenapa eval boleh buat macam ni, ada sesiapa boleh jelaskan?
Di sini anda perlu memahami cara modul dalam Node.js dimuatkan.
Sama seperti pelayar, terdapat objek global dalam persekitaran pelaksanaan Node.js, yang serupa dengan objek tetingkap DOM.
Begitu juga,
Lihat penjelasan kod terus:
Jadi kami boleh memahaminya dengan membandingkannya dengan kod anda Apa yang sebenarnya berkuat kuasa ialah pembolehubah yang diisytiharkan oleh
redisApi = new RedisApi();
,eval (
`let redisApi;`);
ada dalam skop bebas yang lain dan sebenarnya tidak boleh diakses.Ini adalah petikan daripada teks asal es6 Ini adalah bagaimana spesifikasi ditetapkan, jadi anda mempunyai hasilnya, secara amnya tidak disyorkan untuk bermain dengan cara ini