Zmienne są dostępne tylko w zakresie, w którym je zdefiniowano. Jeśli zdefiniujesz zmienną wewnątrz funkcji, nie będziesz mieć dostępu do niej poza nią.
Zdefiniuj zmienną var
poza funkcją (i oczywiście przed nim), a następnie przypisać do niego 10
wewnątrz funkcji:
var value;
$(function() {
value = "10";
});
console.log(value); // 10
pamiętać, że nie należy pominąć pierwszy wiersz w tym kodzie (var value;
) , ponieważ w przeciwnym razie przypisujesz wartość niezdefiniowanej zmiennej. Jest to zła praktyka kodowania i nie będzie działać w trybie ścisłym. Definiowanie zmiennej (var variable;
) i przypisywanie wartości do zmiennej (variable = value;
) to dwie różne rzeczy. Nie można przypisać wartości do zmiennej, która nie została zdefiniowana.
To może nie mieć znaczenia tutaj, ale $(function() {})
jest skrótem dla $(document).ready(function() {})
, który wykonuje funkcję zaraz po załadowaniu dokumentu. Jeśli chcesz wykonać coś natychmiast, nie potrzebujesz go, w przeciwnym razie pamiętaj, że jeśli uruchomisz go przed wczytaniem DOM, to wartość będzie undefined
, dopóki nie zostanie załadowana, więc console.log(value);
umieszczony zaraz po $(function() {})
zwróci undefined
. Innymi słowy, byłoby wykonać w następującej kolejności:
var value;
console.log(value);
value = "10";
Patrz także:
Hi McGarnagle rozwiązuje ten problem! Dzięki są bardzo różne. Ale jaka jest różnica między z lub bez var –
@LionLiu: Z 'var', jego lokalne do' funkcji' jest zadeklarowane w. Bez 'var', jego globalne. –
Hi @McGarnagle, zadeklarowałem var a = 0 w mojej funkcji gotowej do jquery i wywołałem funkcję z tą zmienną jako parametrem z onsubmit formularza, ale wciąż otrzymywałem błąd referencyjny, jeśli zmienna była globalna, powinna pracowałem jako parametr tej funkcji, ale to nie zadziałało, chciałem tylko znać dokładny powód, jeśli na wszelki wypadek. Dziękuję za Twój czas. – noobcode