• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Działanie biblioteki Require.js

Object Storage Arubacloud
+1 głos
268 wizyt
pytanie zadane 26 sierpnia 2015 w Nasze projekty przez Klik Obywatel (1,540 p.)

Witam. Jak w temacie proszę o wyjaśnienie jak to wszystko działa.

Czyli tak w głownym pliku mamy taki kod:

(Przykład kodu zaczerpnięty ze strony http://www.yarpo.pl/2012/12/16/require-js-amd-w-praktyce/)

require(['modules/HelloWorldAlerter'], function(HelloWorldAlerter)
            {
                var alerter = new HelloWorldAlerter();
                alerter.run();
            });

A w pliku "HelloWorldAlerter" taki:

define('modules/HelloWorldAlerter', function()
{
    return function() {
        this.run = function()
        {
            alert("Hello World!");
        }
    };
});

Pierwsza część jest zrozumiała, podajemy scieżkę do pliku a potem pojawia się funkcja, która na stronie ma takie wyjaśnienie:

"funkcję, która ma zostać wykonana, gdy wszystkie moduły zostaną załadowane"

Ale co ta funkcja tak naprawdę robi? Czy parametrem funkcji ma być nazwa pliku? Dla testów zmieniłem trochę kod w obu plikach tak żew  require nie było żadnego kodu oprócz pierwszej lini a w definie jedynym kodem było "alert()".  alert zostało wyświetlone. Więc co ten parametr robi?

Następnie mamy "

var alerter = new HelloWorldAlerter();
                alerter.run();

"

I jak to niby działa? Mamy zmienną która po wywołaniu konstruktora staje się obiektem, no dobra ale gdzie jest ten konstruktor? Czy nazwa konstruktora jest zależna od parametru funkcji albo nazwy pliku?

Bardzo proszę o wyjaśnienie.

2 odpowiedzi

0 głosów
odpowiedź 30 sierpnia 2015 przez RegularLemon Stary wyjadacz (12,280 p.)

Po przypisaniu wartości do zmiennej alerter, wywoływana jest funkcja która zwraca obiekt. Obiekt zawiera jedną metodę o nazwie run, która wyświetla 'Hello World'.

JavaScript to dziwny język. Nie ma klas i konstruktorów jako takich. Fukcja HelloWorldAlerter zwraca literał obiektu.

Tutaj tworzona jest metoda run:

this.run = function()
        {
            alert("Hello World!");
        }

Potem obiekt jest zwracany do zmiennej w głównym pliku.

Znalazłem ostatnio bardzo fajny artykuł na temat require.js, bo też się niedawno uczyłem. Łap
http://burczu-programator.pl/blog/requirejs-podstawy

Pozdro

komentarz 30 sierpnia 2015 przez Comandeer Guru (600,710 p.)

JavaScript to dziwny język. Nie ma klas i konstruktorów jako takich.

Sorry, ale to jest bzdura.

Konstruktory były od zawsze. Konstruktorem jest każda funkcja, którą wywoła się z operatorem new. A od ES6 JS ma też obsługę klas. 

komentarz 31 sierpnia 2015 przez RegularLemon Stary wyjadacz (12,280 p.)
Wybaczcie za wprowadzenie w błąd.
komentarz 1 września 2015 przez Klik Obywatel (1,540 p.)

Po przypisaniu wartości do zmiennej alerter, wywoływana jest funkcja która zwraca obiekt. Obiekt zawiera jedną metodę o nazwie run, która wyświetla 'Hello World'.

No dobra ale ja nigdzie nie widzę funkcji o nazwie "HelloWorldAlerter". Jedynie co widzę to parametr funkcji anonimowej o tej nazwie oraz nazwę pliku.

Nie wiem, może brakuje mi innej wiedzy, która jest potrzebna do zrozumienia działania tej modularności albo to jakaś abstrakcja wysokiego poziomu której mój mózg nie może przetrawić :(.

Wpis w linku widziałem już wcześniej ale nie rozjaśnił interesującej mnie kwestii.

komentarz 1 września 2015 przez Comandeer Guru (600,710 p.)
define('modules/HelloWorldAlerter', function()
{
    return function() {
        this.run = function()
        {
            alert("Hello World!");
        }
    };
});

To jest ta funkcja.

Podobne pytania

+1 głos
1 odpowiedź 147 wizyt
pytanie zadane 15 lipca 2020 w JavaScript przez icytower Bywalec (2,110 p.)
0 głosów
1 odpowiedź 157 wizyt
pytanie zadane 15 lutego 2020 w JavaScript przez mreo Użytkownik (790 p.)
+1 głos
1 odpowiedź 132 wizyt
pytanie zadane 6 stycznia 2019 w JavaScript przez ShiroUmizake Nałogowiec (46,300 p.)

92,538 zapytań

141,380 odpowiedzi

319,462 komentarzy

61,926 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...