[Intro] Javascript Classes Flashcards
Was ist eine Klasse in Javascript?
- Objects sind viele Daten über ein Ding
- Objects sind Templates für etwas das man immer und immer wieder erstellen wird mit geteilten Keys und Methoden
- Damit die DRY-Regeln verletzten benutzt man Klassen
Wie wird eine Funktion genannt, die ein neues Objekt zurückgibt?
- Klassen Kontruktor
- Das Object wird dann zur Klasse
Welchen Vorteil bieten Klassen gegenüber Objects?
-Geteilte Key Namen und VIELES mehr
Sind Klassen in Javascript wie in Java?
Nicht ganz.
Wie sehen zwei Objects entgegen einer Klasse in Javascript aus?
let userDan = { name : 'Sascha', password: 'test123' }
function User(name, password) { //let user = { //name: name, //password: password //} //return user //}
this.name: name
this.password: password
this.saysHello: function(){
return ‘Hello’ + this.name + ‘!’
}
}
let userSascha = User('Sascha', 'test123') console.log(userSascha.saysHello());
Wie ist die Konvention für Namen von Klassen in Javascript?
-Beginnen mit einem Uppercase Buchstaben
Was macht das new Keyword?
- Das this Keyword wird zu einem neuem Objekt gesetzt
- Am Ende wird das neue Objekt returned
Wie findet man heraus zu welchem Objekt this referenziert, wenn man sich unsicher ist?
-Gucken wo die Methode gecalled wird und das Object welches links for dem Punkt steht. Auf dieses Object bezieht sich this.
userSara.saysHello(); //useSara ist this
Wozu werden Klassen genutzt?
-Klassen werden als ein Template genutzt um eine Menge an Objekten zu erschaffen, welche alle das gleiche Muster an Daten/Eigenschaften besitzen.
Was ist der Unterschied in der Objekterzeugung zwischen Klassen und Prototypes?
-Klassen erstellen bei Verwendung jedes Mal ein neues Objekt und damit auch jedes Mal neue Funktionen des Objektes. Bei vielen Projekten erzeugt man tausende Male die gleichen Funktionen, die sich nicht unterscheiden aber viel Speicher verbrauchen.
Was ist das Problem viele Objekte mit gleichen Funktionen durch den Einsatz von Klassen zu erzeugen?
-Es werden unnötig viele gleiche Funktionen erzeugt und Speicher belastet.
Was erlaubt ein Prototype?
- Jeder Klasse ein Standard-Repository zu geben
- Funktionen einer Klasse im Repository einzelnd gespeichert werden und damit die gleiche Funktion jedem Objekt gegeben werden.
Wie definiert man einen Prototype einer Klasse?
-Die Funktion aus einer Klasse herausnehmen und dem Objekt zurodnen mit:
Vehicle.prototype.name= function(){
return num1 * num2
}
Wie definiert man einen Prototype einer Klasse?
-Die Funktion aus einer Klasse herausnehmen und dem Objekt zurodnen mit:
Vehicle.prototype.name= function(){
return num1 * num2
}
AnimalClass.prototype.speak = function(){
return this.animal ‘ says ‘ this.sound
}