#javascript #es6

class MyClass {}

class MySubClass extends MyClass {

constructor(){
super();
console.log('hello world');
}

}

let a = new MySubClass();

Czemu chcąc użyć konstruktora w sub-klasie muszę wywołać konstruktor rodzica za pomocą super()?
Bez tego wyrzuca błąd Uncaught ReferenceError: this is not defined.

Na prawdę to jest tak zrobione że muszę ręcznie wywołać konstruktor rodzica żeby w ogóle użyć konstruktora w sub-klasie?
Już wiem dlaczego. Dla klas pochodnych domyślny konstruktor to:

constructor(...args) {
super(...args);
}

Tak więc JS "w tle" dodaje domyślny konstruktor jeżeli swojego nie ustalimy. I tam zachodzi "dziedziczenie" this z klasy rodzica za pomocą super(), nie dzieje się to automatycznie tak jak na początku myślałem. Czyli nadpisując domyślny konstruktor trzeba dodać w nim super().
A dziś robimy coś a'la *sztuczną inteligencję* w naszej grze.
Dziś 22 (z 25) epizod gry pisanej w 10 dni wieczorami po pracy: https://www.youtube.com/watch?v=61R5uJCfr6g

Wykorzystuję bibliotekę Phaser.js jako core, a pomysł opieram o anime #dragonball.
Dodatkowo używam #babeljs, aby już teraz używać ECMAScript 6.
Kod całej aplikacji dostępny na moim GitHubie: https://github.com/piecioshka/www.dragonballplay.com

Jeśli jesteś zainteresowany to zasubskrybuj kanał i oglądaj!

#gamedev #webdev #javascript #es6
@GwnBrz: Dziękuję Ci za to bardzo cenne pytanie, które przez ostanie dni daje mi mocno do zrozumienia, że nie mogę tak postępować, czyli wykorzystywać domenę z wyrazami "Dragon Ball" w jej głównej części oraz nazywać grę "Dragon Ball Play". Nie mam praw do marki, więc nie mam prawa do tego, aby tworzyć taką grę.

Postanowiłem, że do końca tego sezonu tak już zostanie, że nie będę zmieniał domeny oraz nazwy gry.
Jeśli łapiesz takie tagi jak #javascript #dragonball #gamedev to ten materiał jest dla Ciebie!
Dragon Ball Play - Sezon 1 Epizod 21: https://www.youtube.com/watch?v=XMvBb6K7Oks

Zgodnie z wczorajszą obietnicą wrzucam kolejny materiał z serii o tworzeniu gry opartej o Phaser.js oraz anime Dragon Ball.
Jeśli spodobał się Tobie materiał, to daj znać w komentarzu.
Jeśli masz uwagi to proszę też je napisz.

Dopiero zaczynam swoją przygodę z YouTube, chciałbym z każdym materiałem podnosić poprzeczkę
Mam propozycję na temat asynchroniczności JavaScript.

W kwestii asynchroniczności Istnieją Generators, Promises i callbacki, w ES7 async functions.

Ja proponuję:

Wszystkie funkcje oparte o Promises (np. fetch) i zwykłe callbacki zmienić w funkcje synchroniczne.
Zrezygnować całkowicie z Promises.
Generatory być może znajdą swoje zastosowanie, widziałem takie przykłady gdzie nie chodziło o taką asynchroniczność.

Zamiast wprowadzać async function w wersji z ES7 zrobić tak:

Funkcje definiować bez polecenia async, bo
@look997: @Borsuk_Miodowy: @kalectwo:

Zrób transpilera w postaci pluginu do babela to zobaczymy w praktyce jak to działa.

Mi się async/await podoba bo jasno mi mówi co się dzieje w kodzie:

async function xx() { return 5; } <-- ta funkcja zwraca Promise

async function yy() {
const config = await fs.readFileAsync( '/config.json' ); <-- program będzie czekał na wynik asynchroniczenj operacji
}

Ja wolę takie rzeczy wiedzieć niż skakać
@Textter: Nie wiem co masz na myśli pisząc "własnego fonta", ale jeśli chodzi o WebFonts (dostępne pod adresem: https://www.google.com/fonts) to śmiało można korzystać z dobroci polskich liter (o ile dany font będzie je posiadał).

Aby potwierdzić moją tezę stworzyłem mini projekt, w którym możesz zobaczyć czy mam rację.
Projekt dostępny pod adresem: https://github.com/piecioshka/test-phaser-polish-font
Demo: http://piecioshka.github.io/test-phaser-polish-font/app/
Mirki, jakiego edytora kodu używacie?
Z jakich dodatków/pluginów/wtyczek korzystacie?
Sublime text, Atom, Webstorm, Brackets, Notepad++, Vim, Emacs, Visual Studio Code, coś jeszcze innego?
Odpowiadając napiszcie proszę przy czym pracujecie (jak wiadomo technologia często wymusza edytor).

Pytanie skierowane przede wszystkim do frontendowców, jednak chętnie poznam też opinię reszty ( ͡° ͜ʖ ͡°)

#programowanie #webdev #javascript #frontend #sublimetext #webstorm #vim #emacs #css #es6 #html

@kary_koniu: zainstalowane:
JavaScriptNext - ES6
JSHint
SublimeCodeIntel
JSFormat
SublimeOnSaveBuild
Color Highlighter
Emmet
DocBlockr
SideBarEnhancements
HexViewer
SublimeREPL
TernJS

do zainstalowania:
brackethighlighting
livereload
can i use
colorpicker?
autoprefixer
livestyle
html5 snippet
Nie do końca łapię koncept Map w ES6, a raczej nie do końca dlaczego jest wyspecyfikowany tak, a nie inaczej.

Kolekcje w ES6 to nowy, ważny dział. Do tej pory praktycznie do wszystkiego były wykorzystywane obiekty, a to do bycia - jakżeby inaczej - obiektami, a to do bycia mapami, a to do bycia setami. Teraz w prezencie dostajemy Mapy i Sety oraz koncept "iterowalności" i wreszcie będzie można te obiekty odciążyć
@regis3: Kwestia nie jest o implementację, patrzymy wysokopoziomowo. Mamy kolekcje, które oferują fajne możliwości, a nie ma łatwego, deklaratywnego sposobu ich tworzenia. To o kant dupy takie kolekcje potłuc, skoro i tak będzie szybciej i wygodniej użyć obiektu, mimo że - teoretycznie - nie powinniśmy (bo są kolekcje).
I lista dopuszczalnych rzeczy, które może robić handler:

var handler =

{

get:...,

set:...,

has:...,

deleteProperty:...,

apply:...,

construct:...,

getOwnPropertyDescripto:...r,

defineProperty:...,

getPrototypeOf:...,

setPrototypeOf:...,

enumerate:...,

ownKeys:...,

preventExtensions:...,

isExtensible:...

}
@pezo: (#) Powiem tak, pracodawcy chyba nadal ciągle nie są jeszcze do końca świadomi że JS !== pisanie animacji w jQuery więc chyba jesteś bezpieczny zawodowo. Natomiast jeśli chodzi o samorozwój to faktycznie, nie da się ukryć że nie znając używanych dziś frameworków, narzędzi i nowinek związanych z samym językiem to jesteś do tyłu baaaardzo mocno.
@cinoo: (#) Co daje mi mieszane uczucia - z jednej strony ciężko znaleźć sensowną robotę (wiadomo, zależy gdzie się szuka, ale gro ofert pracy z którymi się spotykam to albo Web Developer czyli wszystko w jednym, albo "Programista JavaScript (jQuery)"), a z drugiej jak już natrafisz na ogarniętego pracodawcę to masz dużą szansę że będzie to rozsądna oferta.