Fungsi JavaScript berbeda dari bahasa lain. Setiap fungsi dipertahankan dan dijalankan sebagai objek. Melalui properti objek fungsi, Anda dapat dengan mudah menetapkan fungsi ke variabel atau meneruskan fungsi tersebut sebagai parameter. Sebelum melanjutkan, mari kita lihat sintaks penggunaan fungsi:
Berikut kutipannya:
fungsi fungsi1(…){…}
var func2=fungsi(…){…};
var func3=fungsi func4(…){…};
var func5=Fungsi baru();
Copy kode kodenya sebagai berikut:
<skrip tipe="teks/javascript">
// 1, mode pemanggilan metode
// Ketika suatu fungsi disimpan sebagai properti suatu objek, kita menyebutnya sebagai metode objek, lalu ini terikat pada objek tersebut
var objek saya={
nama: "objek saya",
nilai: 0,
kenaikan : fungsi(angka){
this.value += typeof(num) === 'angka' ?
kembalikan ini;
} ,
toString : fungsi(){
return '[Objek:' + nama ini + ' {nilai:' + nilai ini + '}]';
}
}
peringatan(objek saya.peningkatan(10).peningkatan(20).toString()); // [Objek:objek saya {nilai:30}]
// 2, mode pemanggilan fungsi
// Jika suatu fungsi bukan merupakan fungsi dari suatu objek, ia disebut sebagai fungsi, dan ini terikat pada objek global. Ini adalah kesalahan dalam desain bahasa. Jika desain bahasanya benar, saat fungsi dalam dipanggil, fungsi ini masih harus terikat pada variabel fungsi luar ini.
var objek saya={
nama: "objek saya",
nilai: 0,
kenaikan : fungsi(angka){
this.value += typeof(num) === 'angka' ?
kembalikan ini;
} ,
toString : fungsi(){
return '[Objek:' + nama ini + ' {nilai:' + nilai ini + '}]';
},
dapatkanInfo: fungsi(){
var diri=ini;
kembali (fungsi(){
//return this.toString(); // Fungsi anonim internal ini menunjuk ke jendela objek global, dan menampilkan [Jendela objek]
return self.toString(); // Tentukan variabel selft dan tetapkan nilai ini, maka fungsi internal dapat mengakses ini dengan menunjuk ke objek melalui variabel ini
})();
}
}
peringatan(objek saya.peningkatan(10).peningkatan(20).toString()); // [Objek:objek saya {nilai:30}]
// 3, mode pemanggilan konstruktor
// JavaScript adalah bahasa yang didasarkan pada pewarisan prototipe, yang berarti bahwa objek dapat mewarisi properti langsung dari objek lain, dan bahasa tersebut tidak memiliki kelas.
// Jika suatu fungsi dipanggil dengan new di depan, sebuah objek baru akan dibuat yang menyembunyikan anggota prototipe yang terhubung ke fungsi tersebut, dan ini akan terikat pada instance konstruktor.
fungsi Objek Saya(nama){
ini.nama = nama ||. 'Objek Saya';
ini.nilai=0;
ini.kenaikan = fungsi(angka){
this.value += typeof(num) === 'angka' ?
};
ini.toString = fungsi(){
return '[Objek:' + nama ini + ' {nilai:' + nilai ini + '}]';
}
ini.target = ini;
}
Objek Saya.prototipe.getInfo = fungsi(){
kembalikan ini.toString();
}
// Membuat objek MyObject.prototype secara bersamaan. myObject mewarisi semua properti MyObject.prototype.
var objekku = objekku baru();
myObject.peningkatan(10);
peringatan(objek saya.nilai); //10
var otherObject = new MyObject();
Objek lain.peningkatan(20);
peringatan(Objek lain.nilai); //20
peringatan(objek saya.target===objek saya); // benar
peringatan(objek saya.target.getInfo()); // [Objek:Objek Saya {nilai:10}]
// 4, Terapkan mode panggilan
// JavaScript adalah bahasa pemrograman berorientasi objek yang fungsional, sehingga fungsi dapat memiliki metode. Metode penerapan fungsi ini seolah-olah objek memiliki metode ini, dan ini menunjuk ke objek.
// apply menerima dua parameter, yang pertama adalah objek yang akan diikat (objek yang ditunjuk oleh ini), dan yang kedua adalah array parameter.
fungsi Objek Saya(nama){
ini.nama = nama ||. 'Objek Saya';
ini.nilai = 0;
ini.kenaikan = fungsi(angka){
this.value += typeof(num) === 'angka' ?
};
this.toString=fungsi(){
return '[Objek:'+ini.nama+' {nilai:'+ini.nilai+'}]';
}
this.target=ini;
}
fungsi getInfo(){
kembalikan ini.toString();
}
var myObj = baru MyObject();
alert(getInfo.apply(myObj)); //[Object:MyObject {value:0}], ini menunjuk ke myObj
alert(getInfo.apply(window)); //[objek Jendela], ini menunjuk ke jendela
// untuk dan sementara
fungsi fungsi(a,b){
peringatan(a); // 1
peringatan(b); // 2
for(var i=0;i<argumen.panjang;i++){
peringatan(argumen[i]); // 1, 2, 1, 2, 3
}
var i=0;
while(i<argumen.panjang){
peringatan(argumen[i]); // 1, 2, 1, 2, 3
saya=saya+1;
}
}
fungsi(1,2,3);
var i=0
untuk (i=0;i<=10;i++) {
document.write("Nomornya adalah " + i + "<br/>")
}
</skrip>