Definisi Fungsi JavaScript

Fungsi JavaScript dapat ditentukan melalui function kata kuncidefinisi.

Anda dapat menggunakan fungsideklarasiatau fungsiEkspresi

deklarasi fungsi

Di tutorial ini sebelumnya, Anda belajar tentang sintaks berikut:deklarasiFungsi:

function functionName(parameters) {
   Kode yang akan dieksekusi
}

Fungsi yang telah dideklarasikan tidak dieksekusi langsung. Mereka 'disimpan untuk digunakan nanti' dan akan dieksekusi nanti, saat mereka dipanggil.

Contoh

function myFunction(a, b) {
     return a * b;
}

Coba Sendiri

tanda titik koma digunakan untuk memisahkan kalimat-kalimat yang dapat dieksekusi dalam JavaScript.

Karena fungsideklarasitidak dapat dieksekusi, dan untuk itu, untuk diakhiri dengan tanda titik koma adalah hal yang jarang terjadi.

ekspresi fungsi

Fungsi JavaScript juga dapat menggunakanEkspresiuntuk mendefiniskan.

Ekspresi fungsi dapat disimpan di variabel:

Contoh

var x = function (a, b) {return a * b};

Coba Sendiri

Setelah menyimpan ekspresi fungsi di variabel, variabel ini dapat digunakan sebagai fungsi:

Contoh

var x = function (a, b) {return a * b};
var z = x(4, 3);

Coba Sendiri

fungsi di atas sebenarnya adalahFungsi Anonim(tanpa nama fungsi)。

Fungsi yang disimpan di variabel tidak memerlukan nama fungsi. Mereka selalu dipanggil menggunakan nama variabel.

Fungsi di atas berakhir dengan tanda titik koma karena ia adalah bagian dari kalimat yang dapat dieksekusi.

konstruktor Function()

Seperti yang Anda lihat di contoh sebelumnya, fungsi JavaScript dapat ditentukan melalui function yang didefiniskan dengan kata kunci.

Fungsi juga dapat ditentukan melalui nama Function() dengan konstruktur fungsi bawaan JavaScript.

Contoh

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);

Coba Sendiri

Anda sebenarnya tidak perlu menggunakan konstruktur fungsi. Cara menulis contoh di atas juga sama:

Contoh

var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);

Coba Sendiri

Pada sebagian besar kasus, Anda dapat menghindari penggunaan new kata kunci.

hoisting fungsi

Pada tutorial ini sebelumnya, Anda sudah belajar tentang ‘hoisting’ (提升).

Hoisting adalah proses yang dilakukan oleh JavaScript untukdeklarasikelakuan baku untuk memindahkan ke posisi atas dalam domain efektif saat ini.

Hoisting digunakan untuk deklarasi variabel dan deklarasi fungsi.

Seperti halnya, fungsi JavaScript dapat dipanggil sebelum deklarasi:

myFunction(5);
 function myFunction(y) {
     return y * y;
}

fungsi yang didefinisikan dengan ekspresi tidak akan dihoist.

fungsi self-invoking

Ekspresi fungsi dapat dijadikan ‘self-invoking’.

Ekspresi self-invoking akan dieksekusi otomatis (dimulai), tanpa adanya pemanggilan.

Ekspresi fungsi akan dieksekusi otomatis, apabila diikuti oleh ()

Anda tidak dapat melakukan self-invocation terhadap deklarasi fungsi.

Anda harus menambahkan tanda kurung untuk menunjukkan bahwa itu adalah ekspresi fungsi:

Contoh

(function () {
    var x = "Hello!!";      // Saya akan memanggil diri sendiri
}();

Coba Sendiri

fungsi di atas sebenarnya adalahfungsi self-invoking anonymous(tanpa nama fungsi)。

fungsi dapat digunakan sebagai nilai

fungsi dapat digunakan sebagai nilai:

Contoh

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3);

Coba Sendiri

fungsi JavaScript dapat digunakan dalam ekspresi:

Contoh

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3) * 2;

Coba Sendiri

fungsi adalah objek

dalam JavaScript typeof operator akan mengembalikan "function"。

tetapi lebih baik untuk mendeskripsikan fungsi JavaScript sebagai objek.

semua fungsi JavaScript memilikipropertidanmetode

arguments.length akan mengembalikan jumlah argumen yang diterima saat fungsi dipanggil:

Contoh

function myFunction(a, b) {
    return arguments.length;
}

Coba Sendiri

toString() metode untuk mengembalikan fungsi dalam bentuk string adalah:

Contoh

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

Coba Sendiri

Fungsi yang didefinisikan sebagai properti objek disebut metode objek.

Fungsi yang dirancang untuk membuat objek baru disebut fungsi konstruktur objek (konstruktor objek).

Fungsi panah

Fungsi panah memungkinkan untuk menulis ekspresi fungsi dengan sintaks singkat.

Anda tidak perlu kata kunci function, kata kunci return, dan kurung kurawal.

Contoh

// ES5
var x = function(x, y) {
  return x * y;
}
// ES6
const x = (x, y) => x * y;

Coba Sendiri

Fungsi panah tidak memiliki this sendiri. Mereka tidak cocok untuk mendefinisikan metode objek.

Fungsi panah belum diangkat. Mereka harus ditentukan sebelum digunakan.

Menggunakan const lebih aman daripada menggunakan var, karena ekspresi fungsi selalu nilai konstan.

Jika fungsi adalah satu kalimat, hanya dapat dilewati kata kunci return dan kurung kurawal. Jadi, mempertahankan mereka mungkin adalah hal yang bagus:

Contoh

const x = (x, y) => { return x * y };

Coba Sendiri

IE11 atau versi yang lebih awal tidak mendukung fungsi panah.