Objektorienterad JavaScript
Allt kretsar kring
Experimentera med this och lär dig det så kommer mycket bli enklare
this
syftar på context
Enklare sagt, vilket objekt funktionen kallas på eller tillhör
En funktion kan ha samma funktionalitet men bete sig olika beroende på hur du kallar på den och när du kallar på den: this ändras
//class keyword
class Person{
//explicit constructor method
constructor(name, age){
this.name = name;
this.age = age;
}
}
function Person(name, age){
this.name = name;
this.age = age;
}
class
Gör samma sak som Constructor Call
Måste alltid skrivas med nyckelordet class
Måste alltid skapas med new
var newPerson = new Person("Ronny", 52);
class methods
class Person{
constructor(name, age){
this.name = name;
this.age = age;
}
printName(){
console.log(this.name);
}
}
class Person{
constructor(name, age){
this.name = name;
this.age = age;
}
get name(){
return this.name;
}
set name(newName){
this.name = newName;
}
}
class Person{
set name(newName){
if(newName !== ''){
this.name = newName;
}
return 'You must supply a name!';
}
}
Tillför inget nytt egentligen
"Syntactical sugar"
Ärver med extends
Den klassen man ärver ifrån kan kallas på med super
Arv
class Person {
constructor(name) {
this.name = name;
}
toString() {
return `${this.name}`;
}
}
class Teacher extends Person {
constructor(name, title) {
super(name);
this.title = "Teacher";
}
}
Övningar finns på Zenit/GitHub
Eget arbete med gruppuppgiften