Tam olarak&; kapatma" quot; bakın JavaScript nedir?
Kilitler ne olduğunu anlıyorum, ama bazı sorunlar terimi closure
ifade eder tam olarak grokking yaşıyorum. Bu dönem pek çok web sitesi içinde kullanılan gördüm, ama nadiren gerçek tanımını kabul ediyor.
- Sürekli değişkenlerin çerçeve yığını mı?
- Döndürülen işlev mi?
- Dış işlev kapsamı mi?
- (İade) iç işlevi kapsamında mı?
- Belki de öylekavramdeğişkenleri üzerinde tutmak yığını çerçeve işlevi döndükten sonra?
Biri bana closure
ne ifade eder tam olarak söyleyebilir misiniz?
CEVAP
İki cümlelik bir özet:
Bir kapatma için yerel değişkenler. fonksiyonu - canlı tuttu sonra fonksiyon geri döndü ya
Kapanışı olan yığın-bir çerçeve. değil işlevi kaldırıldı verir. (eğer bir 'yığın çerçevesi' edildi olmak yerine malloc tanımladı yığın!)
Çok iyi kapanışları ile ilgili bir makale
Bir "kapatma" diye bir tabir (genellikle bir fonksiyon) bu olabilir bir serbest değişkenleri ile birlikte bu bağlar çevre değişkenleri (""ifade) kapatır.
Bir Kapatma basit bir açıklaması var bu ECMA iç sağlar fonksiyonlar; fonksiyon tanımlar ve içinde ifadeler fonksiyon fonksiyonu diğer fonksiyonlar bir anısı var. Ve bu iç fonksiyonları yerel erişim izni değişkenler ve parametreler ilan onların dış içinde iç fonksiyonları görev(ler). Bir kapanması sonucu oluşur bu iç işlevlerinden biri yaptı. erişilebilir işlevi dışında böylece yer, hangi dış işlev sonra idam edilecek geri döndü. Hala noktası yerel değişkenler erişimi vardır, parametreleri ve iç işlev dış görev bildirimleri. Değişken, parametre ve yerel fonksiyon bildirimleri (başlangıçta) o zaman sahip oldukları değerler dış işlev döndü ve olabilir iç işlevi ile etkileşim.
Burada iyi bir örnek
&Quot;sıkı" kullanın; JavaScript, ...
Neden ReSharper söyle&; örtülü olarak ...
&; Güvenli olmayan JavaScript URL ile ...
Nedir &;*" JavaScript " fonksiyon...
Tam olarak's "korusun" ...