Have fun with Class
// Mother Class
class Provider {
constructor(data) {
this.provider = data.provider;
this.maxTry = data.maxTry || 3;
}
requestFile(file){
return console.log(`I'm looking for the ${file.type} ${file.name} with ${this.provider}`)
}
getProviderParams(){
return console.log('Provider parameters: ', this)
}
}
// Child Class
class Provider2 extends Provider {
constructor(data) {
super(data,data);
this.provider = data.provider;
}
sayHi(name){
return console.log(`Hi ${name} !`)
}
}
const P = new Provider({ provider: 'google' });
const M = new Provider2({ provider: 'duckduckgo' });
console.log('----------------------')
console.log('Provider 1', P.requestFile({ name: 'Thor', type:'film' }))
console.log('Provider 1', P.getProviderParams())
console.log('----------------------')
console.log('Provider 2', M.requestFile({ name: 'Avatar', type:'serie' }))
console.log('Provider 2', M.getProviderParams())
console.log('Provider 2', M.sayHi('Hodor'))
console.log('----------------------')