Latest web development tutorials
×

JavaScript kuliah

JavaScript kuliah JavaScript pengantar singkat JavaScript pemakaian JavaScript ekspor JavaScript tatabahasa JavaScript laporan JavaScript catatan JavaScript variabel JavaScript Jenis Data JavaScript benda JavaScript fungsi JavaScript cakupan JavaScript peristiwa JavaScript tali JavaScript operator JavaScript membandingkan JavaScript If...Else JavaScript switch JavaScript for JavaScript while JavaScript Break & Continue JavaScript typeof JavaScript Jenis Konversi JavaScript Regular Expressions JavaScript kesalahan JavaScript debugging JavaScript angkat variabel JavaScript Modus yang ketat JavaScript Gunakan tidak tepat JavaScript bentuk Authentication JavaScript Reserved Keywords JavaScript JSON JavaScript void JavaScript kode Spesifikasi

JS fungsi

JavaScript definisi fungsi JavaScript Argumen fungsi JavaScript fungsi panggilan JavaScript penutupan

JS HTML DOM

DOM pengantar singkat DOM HTML DOM CSS DOM peristiwa DOM EventListener DOM elemen

JS canggih Tutorial

JavaScript benda JavaScript Number JavaScript String JavaScript Date JavaScript Array JavaScript Boolean JavaScript Math JavaScript RegExp benda

JS Browser BOM

JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript pop JavaScript Kegiatan Jangka waktu JavaScript Cookies

JS gudang

JavaScript gudang JavaScript uji jQuery JavaScript uji Prototype

JS contoh

JavaScript contoh JavaScript contoh objek JavaScript Browser contoh objek JavaScript HTML DOM contoh JavaScript ringkasan

JS Reference manual

JavaScript benda HTML DOM benda

Penutupan JavaScript

variabel JavaScript dapat variabel lokal atau global.

variabel pribadi dapat digunakan penutupan.


Variabel global

Fungsi dapat mengakses variabel yang didefinisikan oleh fungsi internal, seperti ?:

contoh

Fungsi myFunction () {
var a = 4;
mengembalikan * a;
}

Coba »

Fungsi juga dapat diakses di luar fungsi didefinisikan variabel, seperti:

contoh

var a = 4;
Fungsi myFunction () {
mengembalikan * a;
}

Coba »

Contoh belakang, adalah variabel global.

Di halaman web milik global variabel jendela objek.

variabel global dapat digunakan dalam semua skrip pada halaman.

Dalam contoh pertama, adalah variabel lokal.

variabel lokal hanya dapat digunakan untuk menentukan fungsi internal. Untuk fungsi lain atau kode script tidak tersedia.

Bahkan variabel global dan lokal dengan nama yang sama, mereka juga dua variabel yang berbeda. Memodifikasi salah satu, itu tidak akan mempengaruhi nilai yang lain.

catatan Jika Anda tidak mendeklarasikan variabel menggunakan kata kunci var, maka itu adalah variabel global, meskipun itu didefinisikan dalam fungsi.


Variabel siklus hidup

Lingkup variabel global yang global, yaitu, seluruh program JavaScript, variabel global di mana-mana.

Dalam variabel dideklarasikan di dalam fungsi, hanya bekerja dalam fungsi. variabel ini lokal, lokal dalam lingkup; parameter fungsi terlokalisir, hanya di dalam pekerjaan fungsi.


kontra Dilema

Jika Anda ingin membayangkan beberapa statistik numerik, dan counter yang tersedia di semua fungsi.

Anda dapat menggunakan variabel global, fungsi set meja bertambah:

contoh

var counter = 0;

Fungsi add () {
meja + = 1;
}

tambahkan ();
tambahkan ();
tambahkan ();

// Counter adalah sekarang 3

Coba »

Perubahan nilai counter terjadi dalam pelaksanaan add () fungsi.

Tapi pertanyaannya adalah, script pada halaman dapat mengubah meja, bahkan jika tidak ada panggilan untuk menambahkan () fungsi.

Jika saya menyatakan fungsi dalam counter, jika tidak memanggil fungsi tidak akan mengubah nilai counter:

contoh

Fungsi add () {
var counter = 0;
meja + = 1;
}

tambahkan ();
tambahkan ();
tambahkan ();

// Niat adalah untuk output 3, tapi tidak, output adalah 1!

Coba »

Kode di atas tidak akan keluar dengan benar, setiap kali saya menelepon untuk menambahkan () fungsi, counter akan ditetapkan ke 1.

fungsi inline JavaScript dapat memecahkan masalah ini.


fungsi JavaScript bersarang

Semua fungsi dapat mengakses variabel global.

Bahkan, dalam JavaScript, semua fungsi dapat mengaksesnya di lantai ruang lingkup.

JavaScript mendukung fungsi bersarang. Fungsi bersarang dapat mengakses variabel pada lapisan fungsi.

Dalam contoh ini, fungsi bersarang plus () dapat mengakses variabel counter fungsi orang tua:

contoh

Fungsi add () {
var counter = 0;
Fungsi plus () {kontra + = 1;}
PLUS ();
kembali kontra;
}

Coba »

Jika kita dapat mengakses ditambah luar () fungsi, sehingga kita dapat mengatasi penderitaan meja.

Kami juga perlu memastikan bahwa counter = 0 hanya sekali.

Kita perlu penutupan.


Penutupan JavaScript

Ingat fungsi panggilan itu sendiri lakukan? Fungsi ini akan melakukan?

contoh

var add = (function () {
var counter = 0;
Fungsi kembali () {return meja + = 1;}
}) ();

tambahkan ();
tambahkan ();
tambahkan ();

3 // kontra

Coba »

Contoh analisis

Tambahkan variabel kata menunjukkan nilai kembali dari fungsi panggilan itu sendiri.

Fungsi diri pemanggilan dilakukan hanya sekali. Mengatur meja ke nol. Dan kembali ke ekspresi fungsi.

menambahkan variabel sebagai fungsi dari penggunaan. Bagian besar adalah bahwa hal itu dapat diakses di lingkup counter lapisan fungsi.

Ini disebut penutupan JavaScript. Ini memiliki variabel pribadi sehingga fungsi menjadi mungkin.

Counter yang lingkup perlindungan fungsi anonim hanya dapat diubah dengan metode add.

catatan Penutupan dapat diakses di satu fungsi variabel lingkup dalam fungsi, bahkan jika fungsi lapisan telah ditutup.