2011-01-10 17 views
20

dzieje wokół kodu źródłowego modernizr znalazłem dziwną rzecz:funkcji JavaScript z „niezdefiniowane” parametru

window.Modernizr = (function(window,document,undefined) { 

Po że ta funkcja zostanie wywołana z dwoma argumentami (this, this.document).

Dlaczego tutaj użyto undefined? Czy to ma sens, czy jest to po prostu dziwny styl kodu?

+0

Wiem, że ta konstrukcja nadpisuje niezdefiniowane w kontekście funkcji, ale nie mogę zrozumieć za co. –

Odpowiedz

23

Tworzy lokalny undefined w przypadku, gdy ktoś przedefiniuje undefined gdzieś w łańcuchu zasięgu.

Zapewnia również szybsze wyszukiwanie, ponieważ undefined jest właściwością globalną, więc przesunięcie łańcucha zasięgu jest zmniejszone.

+1

Wow, dzięki za szybką odpowiedź. Nie myślę o tym. –

+7

Tak, wierzę, że Paul Irish określa to jako efekt dupek w 10 rzeczach, których nauczyłem się o wideo JQuery. – Loktar

Powiązane problemy