Mengapa (0, Panggilan Fungsi Babel) dalam Output Tersusun Babel?
Apabila mengimport fungsi daripada modul luaran dan menggunakannya dalam kod anda, anda mungkin melihat tingkah laku yang menarik dalam output Babel yang diubah. Fungsi dibungkus dalam bentuk (0, fn)(...). Ini berbeza daripada panggilan fungsi asal tanpa pengendali koma apabila disusun dalam mod longgar.
Transformasi ini mempunyai tujuan khusus: ia memastikan bahawa konteks ini fungsi ditetapkan kepada sama ada objek global dalam mod tidak ketat atau tidak ditentukan dalam mod ketat. Apabila memanggil _b.a() secara terus, ini akan lalai kepada _b objek modul.
Dengan menggunakan (0, _b.a)(), Babel forces fungsi yang akan dipanggil dengan ini ditetapkan kepada nilai yang sesuai. Pengendali koma (,) pada asasnya membuang nilai pulangan ungkapan sebelumnya (dalam kes ini, 0) dan menilai sebelah kanan, iaitu panggilan fungsi dalam kejadian ini.
Pada dasarnya, yang diubah kod adalah bersamaan dengan:
0; // Ignore result var tmp = _b.a; tmp();
Teknik ini menjamin bahawa fungsi ini konteks adalah konsisten dengan tingkah laku yang diharapkan.
Atas ialah kandungan terperinci Mengapa Babel Menggunakan `(0, fn)(...)` Apabila Memanggil Fungsi yang Diimport?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!