Rumah >hujung hadapan web >tutorial js >Mengapa Babel Menambah Operator Koma (0,) pada Panggilan Fungsi yang Diimport?
Fungsi Panggilan Penulisan Semula dalam Babel: Memahami Operator Koma
Babel, penyusun JavaScript yang popular, menukarkan kod ES6 kepada versi yang serasi untuk pelayar lama . Apabila menghadapi panggilan fungsi daripada modul yang diimport, Babel sering menambahkan operator koma (0,) pada permulaan panggilan. Tingkah laku ini menimbulkan persoalan tentang tujuannya.
Khususnya, fail input yang mengandungi panggilan fungsi import:
import { a } from 'b'; function x () { a() }
dihimpun oleh Babel ke dalam:
'use strict'; var _b = require('b'); function x() { (0, _b.a)(); }
Babel's tingkah laku lalai adalah untuk menyusun dalam mod ketat, oleh itu (0,). Dalam mod longgar, panggilan fungsi dikeluarkan sebagai _b.a() tanpa pengendali koma.
Menjelaskan Operator Koma
Penambahan (0,) memastikan bahawa fungsi yang diimport dipanggil dengan objek global sebagai nilai ini, atau tidak ditentukan jika mod ketat didayakan. Tanpa koma, _b.a() akan dipanggil dengan _b sebagai nilai ini.
Pengendali koma menilai ungkapan pertama (0) kepada undefined dan mengabaikan keputusannya. Ia kemudian menilai ungkapan kedua (_b.a) dan memberikannya kepada pembolehubah sementara (tmp). Akhir sekali, ia memanggil pembolehubah sementara (tmp()) dengan objek global sebagai nilai ini.
Pada dasarnya, teknik ini membenarkan fungsi yang diimport beroperasi secara global tanpa menjejaskan nilai konteks panggilan ini.
Kesimpulan
Penggunaan operator koma oleh Babel dalam panggilan fungsi yang diimport memastikan bahawa fungsi itu dipanggil dengan betul tanpa mengira konteks panggilan. Teknik ini dilaksanakan dengan membuang hasil ungkapan koma pertama dan memanggil pembolehubah sementara dengan objek global sebagai nilai ini.
Atas ialah kandungan terperinci Mengapa Babel Menambah Operator Koma (0,) pada Panggilan Fungsi yang Diimport?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!