Saya menggunakan JavaScript dan saya membuat variabel global. Saya mendefinisikannya di luar fungsi dan saya ingin mengubah nilai variabel global dari dalam suatu fungsi dan menggunakannya dari fungsi lain, bagaimana saya melakukan ini?
sumber
Saya menggunakan JavaScript dan saya membuat variabel global. Saya mendefinisikannya di luar fungsi dan saya ingin mengubah nilai variabel global dari dalam suatu fungsi dan menggunakannya dari fungsi lain, bagaimana saya melakukan ini?
Referensi saja variabel di dalam fungsi; tidak ada sihir, cukup gunakan namanya. Jika sudah dibuat secara global, maka Anda akan memperbarui variabel global.
Anda bisa mengesampingkan perilaku ini dengan mendeklarasikannya menggunakan lokal var
, tetapi jika Anda tidak menggunakannya var
, maka nama variabel yang digunakan dalam suatu fungsi akan bersifat global jika variabel itu telah dideklarasikan secara global.
Itu sebabnya dianggap praktik terbaik untuk selalu mendeklarasikan variabel Anda secara eksplisit var
. Karena jika Anda melupakannya, Anda dapat mulai mengacaukan global secara tidak sengaja. Itu kesalahan mudah untuk dilakukan. Tetapi dalam kasus Anda, ini berbalik dan menjadi jawaban yang mudah untuk pertanyaan Anda.
console.log
ini dijalankan segera, tetapi fungsi keberhasilan ajax hanya berjalan di beberapa titik nanti ketika panggilan ajax benar-benar mengembalikan respons. Ini adalah poin mendasar tentang sifat asinkron dari ajax: kode dalam fungsi penutupan tidak berjalan secara berurutan dengan kode di sekitarnya. Ini penting untuk dipahami ketika belajar tentang kode yang digerakkan oleh peristiwa.sumber
Cukup gunakan nama variabel itu.
Dalam JavaScript, variabel hanya bersifat lokal untuk suatu fungsi, jika mereka adalah parameter fungsi atau jika Anda mendeklarasikannya sebagai lokal secara eksplisit dengan mengetikkan
var
kata kunci di depan nama variabel.Jika nama nilai lokal memiliki nama yang sama dengan nilai global, gunakan
window
objekLihat jsfiddle ini
Edit
Dengan ES2015, ada dua kata kunci lagi
const
danlet
, yang juga mempengaruhi ruang lingkup variabel ( Spesifikasi Bahasa )sumber
sumber
var
kata kunci di dalam fungsi, maka Anda tidak harus berurusan dengandocument.getElementById("outside").value = x;
Dengan window ['variableName'] atau window.variableName Anda dapat mengubah nilai variabel global di dalam suatu fungsi.
sumber