JavaScript kullanıyorum ve global bir değişken oluşturuyorum. Bunu bir fonksiyonun dışında tanımlıyorum ve global değişken değerini bir fonksiyonun içinden değiştirip başka bir fonksiyondan kullanmak istiyorum, bunu nasıl yapabilirim?
JavaScript kullanıyorum ve global bir değişken oluşturuyorum. Bunu bir fonksiyonun dışında tanımlıyorum ve global değişken değerini bir fonksiyonun içinden değiştirip başka bir fonksiyondan kullanmak istiyorum, bunu nasıl yapabilirim?
Yanıtlar:
Sadece fonksiyonun içindeki değişkeni referans alın; sihir yok, sadece adını kullan. Global olarak oluşturulmuşsa, global değişkeni güncelleyeceksiniz.
Bu davranışı yerel olarak bildirerek geçersiz kılabilirsiniz var, ancak kullanmazsanız var, bir işlevde kullanılan bir değişken adı, bu değişken global olarak bildirilmişse global olacaktır.
Bu nedenle değişkenlerinizi her zaman açıkça belirtmek en iyi uygulama olarak kabul edilir var. Çünkü eğer unutursan, tesadüfen küresellerle uğraşmaya başlayabilirsin. Yapması kolay bir hata. Ama sizin durumunuzda, bu tersine döner ve sorunuza kolay bir cevap olur.
console.loghemen çalıştırılmasıdır, ancak ajax başarı işlevi yalnızca daha sonra ajax çağrısı gerçekten bir yanıt döndürdüğünde bir noktada çalışır. Bu, ajax'ın eşzamansız doğasıyla ilgili temel bir noktadır: Kapanış işlevlerindeki kod, etrafındaki kodla birlikte sırayla çalışmaz. Olay güdümlü kod hakkında bilgi edinirken bunu kavramak önemlidir.
var a = 10;
myFunction();
function myFunction(){
a = 20;
}
alert("Value of 'a' outside the function " + a); //outputs 20
Sadece o değişkenin adını kullanın.
JavaScript'te, değişkenler, işlevin parametreleriyse veya vardeğişkenin adından önce anahtar kelimeyi yazarak açık bir şekilde yerel olarak bildirirseniz, yalnızca bir işlev için yereldir .
Yerel değerin adı genel değerle aynı ada sahipse, windownesneyi kullanın
Bu jsfiddle'a bakın
x = 1;
y = 2;
z = 3;
function a(y) {
// y is local to the function, because it is a function parameter
console.log('local y: should be 10:', y); // local y through function parameter
y = 3; // will only overwrite local y, not 'global' y
console.log('local y: should be 3:', y); // local y
// global value could be accessed by referencing through window object
console.log('global y: should be 2:', window.y) // global y, different from local y ()
var x; // makes x a local variable
x = 4; // only overwrites local x
console.log('local x: should be 4:', x); // local x
z = 5; // overwrites global z, because there is no local z
console.log('local z: should be 5:', z); // local z, same as global
console.log('global z: should be 5 5:', window.z, z) // global z, same as z, because z is not local
}
a(10);
console.log('global x: should be 1:', x); // global x
console.log('global y: should be 2:', y); // global y
console.log('global z: should be 5:', z); // global z, overwritten in function a
ES2015 ile iki anahtar kelime daha geldi constve letbu, bir değişkenin kapsamını da etkiliyor ( Dil Spesifikasyonu )
<script>
var x = 2; //X is global and value is 2.
function myFunction()
{
x = 7; //x is local variable and value is 7.
}
myFunction();
alert(x); //x is gobal variable and the value is 7
</script>
varAnahtar kelimeyi işlevin içinde kullanmayın , o zaman document.getElementById("outside").value = x;
var a = 10;
myFunction(a);
function myFunction(a){
window['a'] = 20; // or window.a
}
alert("Value of 'a' outside the function " + a); //outputs 20
İle pencerenin [ 'variableName'] veya window.variableName Bir fonksiyon içerisinde global değişkenin değerini değiştirebilir.