JavaScript fungsi panggilan
Ada empat macam fungsi JavaScript yang disebut.
Setiap cara yang berbeda yang inisialisasi mode ini.
kata kunci ini
Secara umum, di Javascript, ini mengacu pada fungsi objek saat dieksekusi.
Catatan bahwa ini adalah kata kunci reserved, Anda tidak dapat mengubah nilai ini. |
Memanggil fungsi JavaScript
Pada bagian sebelumnya kita telah belajar cara membuat fungsi.
Kode fungsi dijalankan setelah fungsi ini dipanggil.
Sebagai panggilan fungsi
contoh
mengembalikan * b;
}
myFunction (10, 2); // myFunction (10, 2) mengembalikan 20
Coba »
Fungsi di atas bukan milik objek apapun. Namun, dalam JavaScript, itu selalu obyek global default.
Dalam HTML, default obyek global adalah halaman HTML itu sendiri, sehingga fungsi adalah bagian dari halaman HTML.
Di halaman browser objek jendela browser (objek window). Atas fungsi otomatis menjadi fungsi dari objek window.
myFunction () dan window.myFunction () adalah sama:
contoh
mengembalikan * b;
}
window.myFunction (10, 2); // window.myFunction (10, 2) mengembalikan 20
Coba »
Ini adalah metode yang umum digunakan memanggil fungsi JavaScript, tetapi tidak baik praktek pemrograman global yang variabel, metode atau fungsi mungkin menyebabkan konflik penamaan bug. |
Objek global
Ketika fungsi menyebut dirinya bukan merupakan objek ?, Nilai ini akan menjadi obyek global.
Di web browser, obyek global adalah jendela browser (objek window).
Contoh nilai kembali ini adalah objek jendela:
Fungsi sebagai obyek global untuk memanggil, ini akan menjadi nilai obyek global. Gunakan jendela objek sebagai variabel cenderung menyebabkan program crash. |
Sebagai fungsi dari metode panggilan
Dalam JavaScript Anda dapat menggunakan fungsi didefinisikan sebagai metode objek.
Contoh berikut membuat sebuah objek (myObject), objek memiliki dua sifat (firstName dan lastName), dan metode (fullName):
contoh
firstName: "John",
lastName: "Doe",
fullName: function () {
kembali this.firstName + "" + this.lastName;
}
}
myObject.fullName (); // kembali "John Doe"
Coba »
Metode fullName adalah fungsi. Fungsi milik objek. myObject adalah pemilik fungsi.
objek ini memiliki kode JavaScript. Nilai MyObject objek contoh ini.
Tes berikut! FullName memodifikasi metode dan pulang ini nilai:
contoh
firstName: "John",
lastName: "Doe",
fullName: function () {
kembali ini;
}
}
myObject.fullName (); // kembali [object Object] (pemilik obyek)
Coba »
Fungsi sebagai metode objek panggilan, jadi ini akan menjadi nilai dari objek itu sendiri. |
Gunakan fungsi panggilan konstruktor
Jika fungsi ini dipanggil sebelum menggunakan kata kunci baru, konstruktor disebut.
Sepertinya untuk membuat fungsi baru, tetapi sebenarnya fungsi JavaScript adalah obyek diciptakan kembali:
contoh
Fungsi myFunction (arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// Ini menciptakan objek baru
var x = new myFunction ( "John", "Doe");
x.firstName; // kembali "John"
Coba »
Memanggil konstruktor untuk membuat objek baru. Objek baru mewarisi sifat dan metode konstruktor.
Konstruktor kata kunci ini tidak memiliki nilai apapun. nilai ini untuk membuat sebuah instance dari sebuah objek (objek baru) dalam panggilan fungsi. |
Sebagai fungsi dari fungsi pemanggilan metode
Dalam JavaScript, fungsi adalah obyek. fungsi JavaScript memiliki atribut dan metode.
hubungi () dan menerapkan () fungsi adalah metode yang telah ditetapkan. Kedua metode dapat digunakan untuk memanggil fungsi, argumen pertama dua metode harus menjadi obyek itu sendiri.
contoh
mengembalikan * b;
}
myFunction.call (myObject, 10, 2); // mengembalikan 20
contoh
mengembalikan * b;
}
myArray = [10,2];
myFunction.apply (myObject, myArray); // mengembalikan 20
Kedua metode menggunakan obyek itu sendiri sebagai parameter pertama. Perbedaannya adalah bahwa argumen kedua: menerapkan lulus adalah array parameter, yaitu, sejumlah parameter digabungkan menjadi sebuah array berlalu, dan kemudian memanggil sebagai parameter panggilan lewat (dari awal argumen kedua).
Dalam modus ketat JavaScript (modus yang ketat), panggilan fungsi dalam argumen pertama akan menjadi nilai ini, bahkan jika parameter adalah bukan obyek.
Dalam non-JavaScript modus ketat (mode non-ketat), jika nilai parameter pertama adalah null atau undefined, itu akan menggunakan objek global sebagai gantinya.
Dengan cara ini Anda dapat mengatur nilai dengan panggilan () atau menerapkan (), dan memanggil sebagai metode baru dari objek yang sudah ada. |