Dalam tutorial ini, kita akan menggunakan invoke, karena fungsi JavaScript dapat dipanggil tanpa dipanggil Show
Memanggil Fungsi sebagai FungsiContohfungsi myFunction(a, b) { Fungsi di atas bukan milik objek apa pun. Namun dalam JavaScript selalu ada objek global default Dalam HTML objek global default adalah halaman HTML itu sendiri, jadi fungsi di atas "milik" halaman HTML Di browser, objek halaman adalah jendela browser. Fungsi di atas secara otomatis menjadi fungsi jendela CatatanIni adalah cara umum untuk menjalankan fungsi JavaScript, tetapi bukan praktik yang baik myFunction() dan jendela. myFunction() adalah fungsi yang sama Contohfungsi myFunction(a, b) { Apa ini?Dalam JavaScript, kata kunci Objek mana yang bergantung pada bagaimana Kata kunci this mengacu pada objek. Sendirian, this mengacu pada objek global. Dalam suatu fungsi, this mengacu pada objek global. Dalam suatu fungsi, dalam mode ketat, this adalah undefined . Dalam suatu peristiwa, this mengacu pada elemen yang menerima peristiwa tersebut. Metode seperti this 0, this 1, dan this 2 dapat merujuk this ke objek apa punObjek GlobalKetika suatu fungsi dipanggil tanpa objek pemilik, nilai Di browser web, objek global adalah jendela browser Contoh ini mengembalikan objek jendela sebagai nilai Contohbiarkan x = myFunction(); fungsi myFunction() { Memanggil fungsi sebagai fungsi global, menyebabkan nilai this menjadi objek global Memanggil Fungsi sebagai MetodeDalam JavaScript Anda dapat mendefinisikan fungsi sebagai metode objek Contoh berikut membuat objek (myObject), dengan dua properti (firstName dan lastName), dan metode (fullName) Contohconst myObject = { Metode fullName adalah sebuah fungsi. Fungsi milik objek. myObject adalah pemilik fungsi Hal yang disebut Menguji. Ubah metode fullName untuk mengembalikan nilai Contohconst myObject = { // Ini akan mengembalikan [objek objek] (objek pemilik) Memanggil fungsi sebagai metode objek, menyebabkan nilai Memanggil Fungsi dengan Pembuat FungsiJika doa fungsi didahului dengan kata kunci Sepertinya Anda membuat fungsi baru, tetapi karena fungsi JavaScript adalah objek, Anda sebenarnya membuat objek baru Contoh// Ini adalah konstruktor fungsi // Ini membuat objek baru // Ini akan mengembalikan "John" Doa konstruktor membuat objek baru. Objek baru mewarisi properti dan metode dari konstruktornya Variabel lokal hanya dapat digunakan di dalam fungsi yang didefinisikan. Itu tersembunyi dari fungsi lain dan kode skrip lainnya Variabel global dan lokal dengan nama yang sama merupakan variabel yang berbeda. Memodifikasi satu, tidak mengubah yang lain CatatanVariabel yang dibuat tanpa kata kunci deklarasi ( Seumur Hidup VariabelVariabel global aktif hingga halaman dibuang, seperti saat Anda menavigasi ke halaman lain atau menutup jendela Variabel lokal berumur pendek. Mereka dibuat saat fungsi dipanggil, dan dihapus saat fungsi selesai Kontra DilemaMisalkan Anda ingin menggunakan variabel untuk menghitung sesuatu, dan Anda ingin penghitung ini tersedia untuk semua fungsi Anda bisa menggunakan variabel global, dan Contoh// Memulai penghitung // Berfungsi untuk menambah counter // Panggil add() 3 kali // Penghitung sekarang harus 3 Cobalah sendiri "Ada masalah dengan solusi di atas. Kode apa pun di halaman dapat mengubah penghitung, tanpa memanggil add() Penghitung harus lokal ke fungsi Contoh// Memulai penghitung // Berfungsi untuk menambah counter // Panggil add() 3 kali // Penghitung sekarang harus 3. Tapi itu 0 Cobalah sendiri "Itu tidak berhasil karena kami menampilkan penghitung global alih-alih penghitung lokal Kami dapat menghapus penghitung global dan mengakses penghitung lokal dengan membiarkan fungsi mengembalikannya Contoh// Berfungsi untuk menambah counter // Panggil add() 3 kali // Penghitung sekarang harus 3. Tapi itu 1 Cobalah sendiri "Itu tidak berhasil karena kami mengatur ulang penghitung lokal setiap kali kami memanggil fungsi tersebut Fungsi dalam JavaScript dapat menyelesaikan ini Fungsi Bersarang JavaScriptSemua fungsi memiliki akses ke lingkup global. Faktanya, dalam JavaScript, semua fungsi memiliki akses ke ruang lingkup "di atasnya". JavaScript mendukung fungsi bersarang. Fungsi bersarang memiliki akses ke ruang lingkup "di atasnya". Dalam contoh ini, fungsi dalam Contohfungsi tambah() { Ini bisa memecahkan dilema kontra, jika kita bisa mencapai fungsi Kami juga perlu menemukan cara untuk mengeksekusi Kami membutuhkan penutupan Penutupan JavaScriptIngat fungsi pemanggilan diri sendiri? Contohconst tambahkan = (fungsi () { menambahkan(); // penghitung sekarang 3 Cobalah sendiri "Contoh DijelaskanVariabel Fungsi pemanggilan sendiri hanya berjalan sekali. Ini mengatur penghitung ke nol (0), dan mengembalikan ekspresi fungsi Dengan cara ini add menjadi sebuah fungsi. Bagian "luar biasa" adalah dapat mengakses penghitung di ruang lingkup induk Ini disebut penutupan JavaScript. Itu memungkinkan suatu fungsi memiliki variabel "pribadi". Penghitung dilindungi oleh ruang lingkup fungsi anonim, dan hanya dapat diubah menggunakan fungsi tambah Penutupan adalah fungsi yang memiliki akses ke lingkup induk, bahkan setelah fungsi induk ditutup Bisakah saya meletakkan fungsi di dalam fungsi JavaScript?JavaScript memungkinkan penyatuan fungsi dan memberikan fungsi dalam akses penuh ke semua variabel dan fungsi yang didefinisikan di dalam fungsi luar (dan semua variabel dan fungsi lain yang dimiliki fungsi luar .
Bisakah Anda menggunakan fungsi di dalam fungsi?Fungsi bersarang adalah fungsi yang sepenuhnya berada di dalam fungsi induk. Fungsi apa pun dalam file program dapat menyertakan fungsi bersarang . Perbedaan utama antara fungsi bersarang dan jenis fungsi lainnya adalah mereka dapat mengakses dan memodifikasi variabel yang ditentukan dalam fungsi induknya.
Bisakah Anda meneruskan fungsi ke fungsi dalam JavaScript?Fungsi yang diteruskan sebagai argumen ke fungsi lain disebut callback . Panggilan balik diteruskan hanya dengan meneruskan nama fungsi.
Bagaimana cara menggunakan satu fungsi di fungsi lain di JavaScript?Tugasnya adalah memanggil fungsi yang mengembalikan fungsi lain dengan bantuan JavaScript. . Pertama, panggil fungsi pertama-1 Tentukan fungsi-2 di dalam fungsi-1 Kembalikan panggilan ke fungsi-2 dari fungsi-1 |