Vyvinul | Prototyp základního týmu |
---|---|
První verze | Únor 2005 |
Poslední verze | 1.7.3 (22. září 2015) |
Vklad | github.com/sstephenson/prototype |
Stav projektu | Aktivní |
Napsáno | Javascript |
Typ | Rámec |
Licence | Licence MIT |
webová stránka | http://prototypejs.org |
Prototyp je rámec JavaScriptu vytvořený Samem Stephensonem vÚnor 2005jako jeden ze stavebních kamenů pro podporu Ajaxu pro Ruby on Rails .
Prototyp je distribuován samostatně, ale může být součástí větších projektů, jako jsou Ruby on Rails, script.aculo.us a Rico . Prototyp využívá 2,7% webových stránek, což z něj činí jednu z nejpopulárnějších knihoven JavaScriptu .
Prototyp poskytuje různé funkce pro vývoj aplikací. Rozsah funkcí sahá od zástupců po funkce využívající XMLHttpRequest (Ajax).
Poskytuje také funkce pro zpracování programování objektů, které klasický JavaScript neumí. V nativním JavaScriptu má vytvoření funkce prototypovou vlastnost . Rámec prototypu by neměl být zaměňován s tímto prvkem.
Funkce dolaru $ se používá jako zkratka k metodě DOM getElementById , což umožňuje dosáhnout všech prvků.
Příklad použití:
Redukce kódu po použití funkce:
$("id_of_element").setStyle({color: "#ffffff"}); Funkce $FSpoléhá na funkci $. Vrátí hodnotu požadovaného prvku formuláře. Pro vstup textfunkce vrací data obsažená v prvku. U vstupního prvku selectvrátí funkce aktuálně vybranou hodnotu.
$F("id_of_input_element") Objekt AjaxDvě metody: Ajax.Request(vrací nezpracovaný výstup XML volání AJAX) a Ajax.Updater(vloží návrat do zadaného objektu DOM)
Příklad použití: Ajax.RequestNíže najde aktuální hodnoty dvou vstupních prvků HTML formuláře, vydá požadavek HTTP POST na server s hodnotami prvku a provede vlastní funkci (nazvanou showResponseníže), když server obdrží odpověď HTTP:
Knihovna poskytuje prvky pro objektově orientované programování. Metoda Class.createse používá k vytvoření nové třídy. Třídě se poté přiřadí prototyp, který funguje jako šablona pro instance třídy.
var FirstClass = Class.create( { // La méthode initialize sert de [[Syntaxe_JavaScript#Constructeur|constructeur]] initialize: function () { this.data = "Bonjour"; } });Rozšíření o další třídu:
Ajax.Request = Class.create( Ajax.Base, { // Remplace la méthode d'initialisation initialize: function(url, options) { this.transport = Ajax.getTransport(); this.setOptions(options); this.request(url); }, // ... });Funkce Object.extend(dest, src)vezme dva objekty jako parametry a zkopíruje vlastnosti druhého objektu (pojem dědičnosti). Kombinovaný objekt je vrácen jako výsledek funkce. Stejně jako v příkladu výše, první parametr obvykle vytváří základní objekt, zatímco druhý je anonymní objekt používaný pouze k nastavení dalších vlastností. Celá deklarace podtřídy se vyskytuje v závorkách volání funkce.