Neden daha önce bir fonksiyonu kullanmak'Javascript ler tanımlı miyim?
Bu kod, her zaman çalışır, ve tarayıcılarda:
function fooCheck() {
alert(internalFoo());
return internalFoo();
function internalFoo() { return true; }
}
fooCheck();
Çalışması lazım neden tek bir referans, ama bulamadım. Ben ilk John Resig sunumu not görmüştüm, ama tek belirtilmiştir. Orada veya herhangi bir yerde açıklama bu konuda yok.
Biri beni aydınlatabilir misiniz?
CEVAP
function
deyimi büyü ve tanımlayıcı kod bloğu* hiçbir şey yürütülmeden önce bağlı neden olur. Bu ise söyleyecek değiştirdiyseniz bu yüzden normal olarak yukarıdan aşağıya sipariş değerlendirilen function
ifadesi farklıdır:
internalFoo= function() { return true; };
çalışmayı bırak. Fonksiyon Ifade neredeyse birbirinin aynı olsa bile, işlevi, deyimi, oldukça farklıdır ve bazı durumlarda belirsiz olabilir.
Bu ECMA standart, bölüm 10.1.3 belgelenmiştir. Ne yazık ki ECMA-262 bile standartlarını standartlarına göre çok okunabilir bir belge değil!
* : <script>
-element içeren işlev.
Neden' ◎ܫ◎ ve fonksiyonu t JavaSc...
Neden't varsa PyPy 6.3 kat daha h...
Neden JavaScript eval fonksiyonu kötü ...
Neden PHP sprintf fonksiyonu kullanmak...
Neden bağlantılı liste işaretçileri ku...