DZIEDZICZENIE
function Animal(name, age) {
this.age = age;
this.name = name;
this.type = 'animal';
}
Animal.prototype.eat = function() {
return this.name + 'właśnie je';
}
function Dog(name) {
this.name = name;
this.type = 'dog';
}
// Dog dziedziczy po Animal
Dog.prototype = Object.create(Animal.prototype);
// Ustawienie konstruktora na Dog
Dog.prototype.constructor = Dog;
Dog.prototype.bark = function() {
return "Wof! Wof!";
}
const a1 = new Animal("Maniek", 10);
a1.eat(); // Maniek właśnie je
a1.bark(); // błąd
const a2 = new Dog("Reksio");
a2.eat(); // Reksio właśnie je
a2.bark(); // Wof! Wof!
call(this, param1, param2*, ...)
function myFunc() {
...
}
myFunc(); // lub myFunc.call();
const ab = {
name: "Marcin",
print: function() {
console.log("Mam na imię " + this.name);
}
}
ob.print(); // Mam na imię Marcin
const ob2 = {
name: "Włodzimiesz"
}
ob.print.call(ob2); // Mam na imię Włodzimierz
ob.print.call({name: "Patryk"}); // Mam na imię Patryk
apply(this, arr)
Math.max.apply(Math, [1, 2, 3]);
// Sprawdzenie jakiego "typu" jest obiekt
console.log(animal instanceof Animal); // true
// Sprawdzenie czy obiekt dog jest typu Dog
dob.constructor === Dog;