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
Susan Sarandonasal
2024-12-03 12:55:11645semak imbas

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');

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

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

function(msg) { alert(msg); }('Hello');

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!

Kenyataan:
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