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

  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • kylediablo

    kylediablo

    8 Ocak 2007
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010