Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Prośba o wytłumaczenie różnicy
Morghulis
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 24.06.2014

Ostrzeżenie: (0%)
-----


Witam,
na swojej stronie chcę zastosować slider. Znalazłem skrypt jquery.slides.js. Wszystko działa ok, ale przeglądając kod skryptu znalazłem konstrukcję której nie rozumiem:
[JAVASCRIPT] pobierz, plaintext
  1. Plugin = (function() {
  2. function Plugin(element, options) {
  3. this.element = element;
  4. this.options = $.extend(true, {}, defaults, options);
  5. this._defaults = defaults;
  6. this._name = pluginName;
  7. this.init();
  8. }
  9. return Plugin;
  10. })();
[JAVASCRIPT] pobierz, plaintext

Jestem początkujący w JavaScripcie i zastanawiam się jaka jest różnica między powyższym kodem a:
[JAVASCRIPT] pobierz, plaintext
  1. Plugin = function(element, options) {
  2. this.element = element;
  3. this.options = $.extend(true, {}, defaults, options);
  4. this._defaults = defaults;
  5. this._name = pluginName;
  6. this.init();
  7. }
[JAVASCRIPT] pobierz, plaintext

Może mnie ktoś oświecić?
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Na moje oko, to nie ma najmniejszego sensu. 2. wersja jest poprawna.

Nawet konsola powinna zakrzyczeć o anonimowej funkcji.

Ten post edytował Damonsson 24.06.2014, 23:37:31
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #3





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


w tym konkretnym przypadku wychodzi na to samo, z tym że pierwsza wesja tworzy domknięcie(closure), a domknięcia pozwalają min. stworzenie dodatkowego zasięgu, w ktorym będą trzymane zmienne. Także zamyka to w pewną całość blok kodu.. można latwo podmienić to co jest po return, i sprawić, że do zewnętrznej zmiennej Plugin będzie przypisane co innego, niz jest to widoczne w środku samowywolujacej sie funkcji (innymi słowy taka izolacja, połaczona z elastycznoscią)

Być moze ktoś napisał to z myślą o przyszłej rozbudowie kodu. Domknięć bardzo często się używa w JS, i niektórzy już asekuracyjnie to stosują, nawet jeśli w efekcie wychodzi na to samo .

Ten post edytował PrinceOfPersia 24.06.2014, 23:43:59


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 02:21