JS Courses 9 OOP
Object.create(); call()/apply(); bind();
by AndrewKuk
HTML
<button>button</button>
JavaScript
/*
//за допомогою обєктів
const Car = {
weight: 1000,
color: "black",
carType: "allroad",
brand: "Nissan",
price: 17000,
move: function(speed) {
console.log(this.brand);
console.log("drive " + speed);
}
};
const Bus = {
weight: 3000,
color: "white",
carType: "",
brand: "Bogdan",
price: 1000,
capacity: 50
};
Car.move.call(Bus, 50);
*/
/*
// створення класу через функцію
function User(name) {
this.userName = name;
}
const user1 = new User('Tolyan');
const user2 = new User('Benya');
console.log(user1.userName);
console.log(user2.userName);
function great(message, time) {
console.log(`${message} ${time}, ${this.userName}`);
}
great.apply(user1, ['Good', 'day']); //Good day, Tolyan
*/
/*
const Films = {
videos: ['Die Hard', 'July 4', 'Godzilla'],
watch: function() {
console.log('I\'m watching ' + this.videos[2]);
}
}
const btn = document.querySelector('button');
btn.addEventListener('click', Films.watch.bind(Films));
*/
function Worker(position) { // make constractor Worker
const salary = 5000;
this.myPosition = position;
this.saySalary = function(requester) {
if(requester == 'wife') {
return salary / 5;
}
};
}
function Manager(position) { //constractor Manager
Worker.apply(this, arguments); //все що доступно у Worker стає досупним тут
this.manage = function() {
return `I\'m a manager! ${this.myPosition}`;
};
}
const worker1 = new Worker();
console.log(worker1.saySalary('wife'));
const man1 = new Manager('CEO');
console.log(man1.manage());