Pemanggilan Fungsi JavaScript

Kode internal fungsi JavaScript akan dijalankan saat 'seseuah' memanggilnya.

Panggil fungsi JavaScript

Saat fungsi diDefinisiketika kode internal fungsi tidak akan dijalankan.

Saat fungsi diPanggilketika kode internal fungsi akan dijalankan.

Panggil fungsi biasanya juga disebut 'memulai fungsi' atau 'melaksanakan fungsi'.

Dalam tutorial ini, kita menggunakan “Panggil”。

Panggil fungsi dalam bentuk fungsi

Instansi

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // akan kembali 20

Coba Sendiri

Fungsi di atas tidak milik objek manapun. Tetapi di JavaScript, selalu ada objek global default.

Dalam HTML, objek global default adalah halaman HTML sendiri, semua fungsi di atas 'milik' halaman HTML.

Dalam browser, objek halaman ini adalah jendela browser. Fungsi di atas otomatis menjadi fungsi jendela.

myFunction() dan window.myFunction() adalah fungsi yang sama:

Instansi

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // akan mengembalikan 20

Coba Sendiri

Ini adalah metode umum untuk memanggil fungsi, tetapi bukanlah kebiasaan yang baik.

Variabel global, method, atau fungsi mudah mengakibatkan konflik nama dan kelebihan di objek global.

this kata kunci

dalam JavaScript disebut this bagian, merujuk kepada objek yang "miliki" kode saat ini.

this nilai, saat digunakan di dalam fungsi, adalah objek yang "miliki" fungsi ini.

Perhatikan this Bukan variabel. Ini adalah kata kunci. Anda tidak dapat mengubah this nilai.

objek global

Ketika memanggil objek tanpa objek pemilik,this nilai menjadi objek global.

Dalam browser web, objek global adalah objek browser.

Contoh ini menggunakan this nilai mengembalikan objek window ini:

Instansi

var x = myFunction();            // x akan menjadi objek window
function myFunction() {
   return this;
}

Coba Sendiri

Mempanggil fungsi sebagai fungsi global akan this nilai menjadi objek global.

Menggunakan objek window sebagai variabel dapat dengan mudah mematahkan program.

Memanggil fungsi sebagai method

Dalam JavaScript, Anda dapat menambahkan fungsi sebagai method objek.

Contoh di bawah ini menciptakan objek (myObject), dengan dua properti (firstName dan lastName), serta method (fullName):

Instansi

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // akan mengembalikan "Bill Gates"

Coba Sendiri

method fullName adalah fungsi. Fungsi ini milik objek. myObject adalah pemilik fungsi.

dikenal sebagai this bagian, adalah objek yang "miliki" kode JavaScript ini. Dalam contoh ini,this nilai adalah myObject.

Coba saja! Ubah method fullName untuk mengembalikan this nilai:

Instansi

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // akan mengembalikan [object Object] (objek pemilik)

Coba Sendiri

Panggil fungsi sebagai metode objek, akan menyebabkan this nilai menjadi objek itu sendiri.

Panggil fungsi melalui konstruktur fungsi

Jika fungsi dipanggil sebelumnya adalah new Kata kunci, maka ini adalah panggilan konstruktur fungsi.

Itu terlihat seperti Anda membuat fungsi baru, tetapi karena fungsi JavaScript adalah objek, Anda sebenarnya membuat objek baru:

Instansi

// Ini adalah konstruktur fungsi:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}
// Membuat objek baru:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // akan kembalikan "Bill"

Coba Sendiri

Panggilan konstruktur akan membuat objek baru. Objek baru akan mewarisi properti dan metode dari konstruktur.

Dalam konstruktur this Kata kunci tanpa nilai.

this nilai akan menjadi objek baru yang dibuat saat memanggil fungsi.