Panggilan Fungsi JavaScript
Kode di dalam JavaScript function
akan dieksekusi ketika "sesuatu" memanggilnya.
Memanggil Fungsi JavaScript
Kode di dalam suatu fungsi tidak dijalankan ketika fungsi tersebut didefinisikan .
Kode di dalam suatu fungsi dijalankan ketika fungsi tersebut dipanggil .
Adalah umum untuk menggunakan istilah " panggil fungsi " daripada " panggil fungsi ".
Juga umum untuk mengatakan "memanggil fungsi", "memulai fungsi", atau "mengeksekusi fungsi".
Dalam tutorial ini, kita akan menggunakan panggilan , karena fungsi JavaScript dapat dipanggil tanpa dipanggil.
Memanggil Fungsi sebagai Fungsi
Contoh
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); //
Will return 20
Fungsi di atas bukan milik objek apa pun. Tetapi 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.
myFunction() dan window.myFunction() adalah fungsi yang sama:
Contoh
function myFunction(a, b) {
return a * b;
}
window.myFunction(10, 2); // Will also return 20
Ini adalah cara umum untuk memanggil fungsi JavaScript, tetapi bukan praktik yang sangat baik.
Variabel global, metode, atau fungsi dapat dengan mudah membuat konflik nama dan bug di objek global.
Kata Kunci ini
Dalam JavaScript, hal yang disebut this
, adalah objek yang "memiliki" kode saat ini.
Nilai this
, ketika digunakan dalam suatu fungsi, adalah objek yang "memiliki" fungsi tersebut.
Perhatikan bahwa this
ini bukan variabel. Ini adalah kata kunci. Anda tidak dapat mengubah nilai this
.
Tip: Baca lebih lanjut tentang this
kata kunci di JS Kata Kunci ini .
Objek Global
Ketika suatu fungsi dipanggil tanpa objek pemilik, nilai this
menjadi objek global.
Dalam browser web objek global adalah jendela browser.
Contoh ini mengembalikan objek window sebagai nilai dari this
:
Contoh
let x = myFunction();
// x will be the window object
function myFunction() {
return this;
}
Memanggil fungsi sebagai fungsi global, menyebabkan nilai this menjadi objek global.
Menggunakan objek jendela sebagai variabel dapat dengan mudah merusak program Anda.
Memanggil Fungsi sebagai Metode
Dalam JavaScript Anda dapat mendefinisikan fungsi sebagai metode objek.
Contoh berikut membuat objek ( myObject ), dengan dua properti ( firstName dan lastName ), dan metode ( fullName ):
Contoh
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // Will return "John Doe"
Metode fullName adalah sebuah fungsi. Fungsi tersebut milik objek. myObject adalah pemilik fungsi.
Hal yang disebut this
, adalah objek yang "memiliki" kode JavaScript. Dalam hal ini nilainya this
adalah myObject .
Menguji! Ubah metode fullName untuk mengembalikan nilai this
:
Contoh
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this;
}
}
// This will return [object Object] (the owner object)
myObject.fullName();
Memanggil fungsi sebagai metode objek, menyebabkan nilai this
menjadi objek itu sendiri.
Memanggil Fungsi dengan Konstruktor Fungsi
Jika pemanggilan fungsi didahului dengan new
kata kunci, itu adalah pemanggilan konstruktor.
Sepertinya Anda membuat fungsi baru, tetapi karena fungsi JavaScript adalah objek, Anda sebenarnya membuat objek baru:
Contoh
// This is a function constructor:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// This creates a new object
const myObj = new myFunction("John", "Doe");
// This will return "John"
myObj.firstName;
Permintaan konstruktor membuat objek baru. Objek baru mewarisi properti dan metode dari konstruktornya.
Kata this
kunci dalam konstruktor tidak memiliki nilai.
Nilai dari this
akan menjadi objek baru yang dibuat saat fungsi dipanggil.