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

  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • LiquidMusick

    LiquidMusick

    23 Aralık 2010
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007