Neden daha önce bir fonksiyonu kullanmak'Javascript ler tanımlı miyim? | Netgez.com
SORU
4 Kasım 2008, Salı


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
4 Kasım 2008, Salı


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.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Anthony Cumia

    Anthony Cumi

    5 EYLÜL 2006
  • Kayla Caton - Peet

    Kayla Caton

    23 HAZİRAN 2012