Examples of Fair Play in Professional TennisMaral Cavner
Maral Cavner is an avid lover of the outdoors. In addition to more than 10 years of experience riding horses, Maral Cavner has experience as a varsity soccer and tennis player.
Examples of Fair Play in Professional TennisMaral Cavner
Maral Cavner is an avid lover of the outdoors. In addition to more than 10 years of experience riding horses, Maral Cavner has experience as a varsity soccer and tennis player.
Nagyn eltökéltnek kell lennünk ahhoz, hogy JavaScript szintaxissal a JavaScript szemléletének megfelelően tudjunk programozni. JS-re épülő nyelvekkel (CoffeeScript, TypeScript) ez könnyebben megvalósítható.
Miért van ez, mit ért a JavaScript az objektum orientáltság alatt, hogyan működik a prototípusos öröklődés, mi az a this?
Nagyn eltökéltnek kell lennünk ahhoz, hogy JavaScript szintaxissal a JavaScript szemléletének megfelelően tudjunk programozni. JS-re épülő nyelvekkel (CoffeeScript, TypeScript) ez könnyebben megvalósítható.
Miért van ez, mit ért a JavaScript az objektum orientáltság alatt, hogyan működik a prototípusos öröklődés, mi az a this?
9. …akkor mi a probléma?
Csak egyfajta függvény
létezik, és sok helyen kell:
Timeout, AJAX, események,
tömb kezelő függvények, stb…
10. Az egyik megoldás: „_this”
.method = function() {
var _this = this;
return this.myArr.map(function(val) {
return _this.scale * val;
});
};
11. A másik (nem) megoldás az új fv
.method = function() {
return this.myArr.map(
#(val) { this.scale * val; }
);
};
12. A másik (nem) megoldás az új fv
.method = function() {
return this.myArr.map(
#@(val) { -> @scale * val; }
);
};
13. Egy alternatív lehetőség a „that”
function MyClass() {
var that = this;
that.method = function() {
return that.myArr.map(function(val) {
return that.scale * val; });
}
return that;
};
16. Milyen egy osztály?
Egy osztályban
- először leírjuk a struktúrát,
amit aztán nem változtatunk
- van lehetőség az adattagok és
metódusok láthatóságának
meghatározására
17. Milyen egy osztály?
Egy osztályban
- a definíciós részen mondom
meg a láthatóságot, utána
nem kell foglalkoznom vele
18. Milyen egy osztály?
Egy osztály
- metódusai nem élnek
különálló életet (a metódus
„kötve van” az osztályhoz)
19. Milyen egy osztály?
Egy osztály
- metódusait felül lehet
definiálni, ez az ősosztályban is
érvényesül, de el tudom érni
az eredetit
20. Milyen egy osztály?
Egy osztály
- példányai ellenőrizhetőek
instanceOf „függvénnyel”
(a leszármazott osztály
példányai is!)
21. Milyen egy osztály?
Egy osztály
- ősosztályának protected tagját
publikussá tehetem az
ősosztály változtatása nélkül
22. ES5Class
function MyClass() {
var that = Module.create(this);
that.private.prop = 42;
that.protected.str = ‘Hello’;
that.public.bool = true;
return Module.finalize( that );
}
var o = new MyClass(); o.bool === true;
o.prop === o.str === undefined
23. ES5Class
function MySubClass() {
var that = Module.create(this, MyClass);
that.public.method = function() {
alert(that.str); // ‘Hello’
};
return Module.finalize( that );
}
24. ES5Class
function MyClass2() {
var that = Module.create(this, arguments);
that.private.count = 0;
that.__constructor__ = function(init) {
that.count = init; // 12
};
/*…*/
}
new MyClass2(12);
25. ES5Class
var o = new MySubClass();
Module.instanceOf(o, MySubClass ) // true
Module.instanceOf(o, MyClass ) // true