Daniel.steigerwald.cz Třídy, dědičnost a OOP v Javascriptu.

Slides:



Advertisements
Podobné prezentace
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Advertisements

Kód VM: VY_32_INOVACE_3ZIM03 Projekt: Zlepšení výuky na ZŠ Schulzovy sady registrační číslo: CZ.1.07./1.4.00/ Autor: Mgr. Jana Zimková Datum:
Tutorial: Mechanic - electrician Topic: Technical training II. class Printed circuit boards 3 Prepared by: Melichařík Lubomír Projekt Anglicky v odborných.
 Úvodní snímek – název a jméno  Osnova prezentace  Obrázky a grafy  Závěr, prostor pro otázky, poděkování, shrnutí  Vhodný slide na závěr – dlouho.
Tutorial: Mechanic - electrician Topic: Electric measurement the 2nd. year Measuring devices 1 Prepared by: Ing. Jiří Smílek Projekt Anglicky v odborných.
Lada Leszkowová, Gymnázium K.V. Raise Hlinsko, 2014 leden
English grammar next.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
2.1 School Practise „have got“
Čtěte a přeložte: Mother is at home. Matka je doma.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-3.PT-19-Služby Název školyStřední odborná škola a Střední odborné učiliště, Dubno.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
SharePoint technologie WSS 3.0 a MOSS 2007 Tomáš Kutěj TSP – Office platform Microsoft.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-2.PT-15-Česká republika Název školyStřední odborná škola a Střední odborné učiliště,
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
ŠkolaStřední průmyslová škola Zlín Název projektu, reg. č.Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávací.
Výukový materiál zpracovaný v rámci projektu Označení:Sada: 3 Ověření ve výuce:Třída: Datum: Registrační číslo projektu:CZ.1.07/1.5.00/ VY_32_INOVACE_ANJ_VL_3_15.
Základní škola Jakuba Jana Ryby Rožmitál pod Třemšínem Efektivní výuka pro rozvoj potenciálu žáka projekt v rámci Operačního programu VZDĚLÁVÁNÍ PRO.
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
? PRESENT SIMPLE OR PRESENT CONTINUOUS. PRESENT SIMPLE PŘÍTOMNÝ ČAS PROSTÝ We read a lot. We read every day. We usually read books of fiction. Our friend,
WALES „Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr.Dana Brdíčková.
Využití multimediálních nástrojů pro rozvoj klíčových kompetencí žáků ZŠ Brodek u Konice reg. č.: CZ.1.07/1.1.04/ Předmět :Amgličtina jako první.
HEJ, HEJ, MY VÍRU MÁME Say, Say, Say you believe it ZPÍVEJ, ŽE SVĚTU JI DÁME Sing for, The whole world to hear it VÍME A VYZNÁVÁME We know and we declare.
Předpřítomný čas Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ondřej Hoberla. Dostupné z Metodického portálu ISSN:
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Čím pojedete na dovolenou ? Co takhle autíčkem ?.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Tento Digitální učební materiál vznikl díky finanční podpoře EU- OP Vzdělávání pro konkurenceschopnost. Není –li uvedeno jinak, je tento materiál zpracován.
PRESENT, PAST AND FUTURE FORM Have to. Have to - must I must go to school. - I have to go to school. Musím jít do školy. Must – vnitřní přesvědčení Have.
Educational program: Mechanic - electrician Title of program: Technical training II. class Astable multivibrator Worked out: Bc. Chumchal Miroslav Projekt.
Daily problems in the job Npor.Konvalinka Petr. Glossary Mobbing - sesypat se Mobbing - sesypat se Bullying - šikana, šikanování Bullying - šikana, šikanování.
 Hra je určená pro dvě družstva nebo dva žáky – žluté x zelené  Po kliknutí na tlačítko s číslicí se zobrazí otázka, s otázkou se zároveň zobrazí napovídající.
Konverzace v anglickém jazyce ročník
Setkání uživatelů SFX Statistické reporty SFX.
Základní škola národního umělce Petra Bezruče, Frýdek-Místek, tř. T. G. Masaryka 454 Projekt SIPVZ 2005.
Základní škola národního umělce Petra Bezruče, Frýdek-Místek, tř. T. G. Masaryka 454 Projekt SIPVZ 2005.
Číslo: Digitální učební materiál vznikl v rámci projektu "Inovace + DVPP", EU peníze do škol, CZ.1.07/1.4.00/ Název: Present simple – Yes/No questions.
Před příjmením užíváme (a to ve všech pádech): Mr(.) Jones - pan Jones Mrs(.)Jones - paní Jonesová Miss Jones - slečna Jonesová Ms(.) Jones - slečna či.
Maturita oral exam rehearsal Lada Leszkowová, GKVR Hlinsko, 2013 prosinec The Czech Republic.
Travelling Maturita oral exam rehearsal
Internet publishing CSS – part 2 Petr Zámostný room: A-72a phone: 4222
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Tutorial: Mechanic - electrician Topic: Technical training II. class Printed circuit boards 2 Prepared by: Melichařík Lubomír Projekt Anglicky v odborných.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Describing a Process 06B12 AutorLadislava Pechová Období.
ECMAScript 5 – Strict mode
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Educational program: Mechanic - electrician Title of program: Technical training II. class Oscillators controlled by crystal Worked out: Bc. Chumchal.
Young CYBER Lions 2015 INTEGRATED SOCIAL MEDIA CAMPAIGN TEMPLATE of your submission (Do not include this slide into your presentation. Start straight with.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-2.PT-12-Zaměstnání Název školyStřední odborná škola a Střední odborné učiliště,
Computer visualization of relational database in www environment Radek Horáček Supervisor: ing. J. Blažej,Phd. Bachelor Thesis, Department of Physical.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-3.PT-26-Londýn Název školyStřední odborná škola a Střední odborné učiliště, Dubno.
Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Tutorial:
Praktická doporučení pro PR a marketing – co v této oblasti může HR dělat lépe Dita Stejskalová.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_AJK-2.PT-13-Vzdělávání Název školyStřední odborná škola a Střední odborné učiliště,
Název SŠ: SŠ-COPt Uherský Brod Autor: Ing. Hana Kubišová, Ph.D. Název prezentace (DUMu): Defects of Guns Název sady: Technical English for students of.
EU peníze středním školám Název vzdělávacího materiálu: B2 – Verbs – Computers Číslo vzdělávacího materiálu: ICT12-19 Šablona: III/2 Inovace a zkvalitnění.
Číslo projektuCZ.1.07/1.5.00/ Název projektuModerní škola Název školyStřední hotelová škola, s.r.o., Floriánské nám. 350, Kladno PředmětAnglický.
Gymnázium, Brno, Elgartova 3 GE - Vyšší kvalita výuky CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Téma: English Grammar.
Gymnázium, Brno, Elgartova 3
Gymnázium, Brno, Elgartova 3
Gymnázium, Brno, Elgartova 3
PICTURES FOR COMPARISON
Revize MGA/Aktualizace AGA
Digitální učební materiál
Autor : Bc. Lucie Ševčíková Datum :
Transkript prezentace:

daniel.steigerwald.cz Třídy, dědičnost a OOP v Javascriptu

OOP v Javascriptu? ano, jednoduše avšak bez osvěty

Javascript Ninjové™™ milión špatných článků jQuery nenabízí nic, protože jQuery je DSL pro DOM funkcionální versus objektový přístup

Javascript je sexy! rychlé prototypování elegance a pružnost DSL included

Třídy In object-oriented programming, a class is a construct that is used as a blueprint (or template) to create objects of that class. This blueprint describes the state and behavior that the objects of the class all share. An object of a given class is called an instance of the class. má Javascript třídy? prototype FTW!

Třída správně - prototype var Person = function(name) { this.name = name; }; Person.CLASSNAME = 'ui-person'; Person.prototype = { getName: function() { return this.name; } }; var joe = new Person('Joe'); document.title = joe.getName();

Třída špatně 1. - closure var Person = function(p_name) { var name = p_name; return { getName: function() { return name; } }; Person.CLASSNAME = 'ui-person'; var joe = Person('Joe'); document.title = joe.getName();

Třída špatně 2. - Crockford var Person = function(name) { this.name = name; this.getName = function() { return this.name; }; Person.CLASSNAME = 'ui-person'; var joe = new Person('Joe'); document.title = joe.getName();

Dědičnost prototype FTW! helpery rozdíl mezi klasickou a prototypovou dědičností

Dědičnost správně - prototype var $extend = function(child, parent) { var F = function() { }; F.prototype = parent.prototype; child.prototype = new F; }; var Person = function(name) { this.name = name; }; Person.prototype.getName = function() { return this.name; }; var Employee = function(name, salary) { Person.call(this, name); this.salary = salary; }; $extend(Employee, Person); Employee.prototype.getSalary = function() { return this.salary; }; Employee.prototype.getName = function() { return 'Zeměstnanec: ' + Person.prototype.getName.call(this); }; var joe = new Employee('Joe'); document.title = joe.getName();

Dědičnost špatně kopírování properties, tj. generované objekty oddělení konstruktorů a inicializátorů čistě objektová dědičnost hierarchie dědičnosti živá

Kompozice/agregace, mixování dědičnost jako špatný code reuse mixování jako náhrada vícenásobné dědičnosti prototype FTW, opět SomeClass.prototype.someBuggyMethod = function() { // fix this shit; }; SomeClass.prototype.missingMethod = function() { // brave new method; };

Prototype - na co pozor Object prototype nikdy nemodifikovat Do not modify objects you don’t own (ostatní nativní) Object.prototype.alert = function() { alert(this); }; (5).alert(); Array.prototype.each = function(fn, context) { for (var i = 0, l = this.length; i < l; i++) { fn.call(context || this, this[i], i, this); } }; [1, 2].each(function(item) { alert(item); });

Javascript DSL == Syntax Sugar DSL o functions as first class objects o object literals syntax sugar pro o třídy o dědičnost o mixování o události o AOP o... a další (attributes, rules and validations, mutators method...)

OOP DSL příklad var Person = $class({ constructor: function(name) { this.name = name; }, getName: function() { return this.name; } }); var Serializable = { serialize: function() { return JSON.stringify(this); } }; var Employee = $class({ Extends: Person, Mixins: Serializable, constructor: function(name, salary) { Person.call(this, name); this.salary = salary; }, getName: function() { return 'Employee: ' + Person.prototype.getName.call(this); } });

Co nabízí JS frameworky? vlastní syntax vychytávky o události/callbacky o attributy/accessors metody nic (jQuery)

Otázky? Děkuji za pozornost,