Rumah > hujung hadapan web > tutorial js > Mengapa Mendapat Fungsi JavaScript Tanpa Nama Sejurus Selepas Definisi?

Mengapa Mendapat Fungsi JavaScript Tanpa Nama Sejurus Selepas Definisi?

Susan Sarandon
Lepaskan: 2024-12-03 12:55:11
asal
704 orang telah melayarinya

Why Invoke Anonymous JavaScript Functions Immediately After Definition?

Mengapa Menggunakan Fungsi Tanpa Nama pada Baris Yang Sama?

Apabila bekerja dengan penutupan, adalah perkara biasa untuk menggunakan fungsi tanpa nama pada baris yang sama. ditakrifkan. Walaupun ini kelihatan sewenang-wenangnya, ia adalah penting untuk pelaksanaan yang betul kerana cara JavaScript mengendalikan pengisytiharan fungsi.

Definisi Fungsi dalam JavaScript

JavaScript membenarkan tiga kaedah untuk mentakrifkan fungsi:

  • Pembina Fungsi: Fungsi baharu('args', 'body')
  • Pengisytiharan Fungsi: nama fungsi(args) { body }
  • Ungkapan Fungsi: var name = function(args) { body }

Perbezaan utama antara pengisytiharan dan ungkapan ialah bahawa pengisytiharan memerlukan pengecam (nama) manakala ungkapan boleh tanpa nama.

Fungsi Tanpa Nama dan Pemisah Baris

Fungsi tanpa nama berkelakuan berbeza daripada fungsi yang dinamakan. Apabila menulis ungkapan fungsi tanpa nama, anda boleh menyediakan pengecam dalam kurungan secara pilihan, tetapi ia tidak perlu.

Jika anda memutuskan baris selepas mentakrifkan fungsi tanpa nama, JavaScript mentafsirkannya sebagai pengisytiharan fungsi. Walau bagaimanapun, oleh kerana tiada pengecam diberikan, pengisytiharan menjadi sintaks tidak sah.

Contoh:

Kod ini mencipta ungkapan fungsi tanpa nama dan memanggilnya pada baris yang sama:

(function(msg) { alert(msg); })('Hello');
Salin selepas log masuk

Tidak sah Contoh:

Jika anda memutuskan garisan dan meninggalkan kurungan, ia akan menjadi pengisytiharan fungsi yang tidak betul:

function(msg) { alert(msg); }

('Hello'); // Syntax error: Invalid function syntax without an identifier
Salin selepas log masuk

Untuk menjadikannya berfungsi, anda perlu menambah kurungan untuk menggunakan fungsi tanpa nama ungkapan:

function(msg) { alert(msg); }('Hello');
Salin selepas log masuk

Kesimpulan

Menyebut fungsi tanpa nama pada baris yang sama memastikan ia dilaksanakan dengan betul sebagai ungkapan fungsi, mengelakkannya daripada disalahtafsirkan sebagai pengisytiharan fungsi dengan pengecam yang tiada.

Atas ialah kandungan terperinci Mengapa Mendapat Fungsi JavaScript Tanpa Nama Sejurus Selepas Definisi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan