Considering this works.
Prototype:
function A(color){
this.color = color
}
A.prototype.test = function(){
return this.color
}
Inheritance:
function B(){
A.call(this)
}
B.prototype = Object.create(A.prototype)
B.prototype.constructor = B
B.prototype.test2 = function(){
return 'whatever...'
}
Instance:
const inst = new B(black)
console.log(inst.test()) //black
console.log(inst.test2()) //whatever...
Because this doesn't work.
Date object inheritance:
function A(){
Date.call(this)
}
A.prototype = Object.create(Date.prototype)
A.prototype.constructor = A
A.prototype.test = function(){
return 'whatever...'
}
Instance:
console.log(new A().getDay()) //Uncaught TypeError: this is not a Date object.
console.log(new A().test()) //whatever...
I tried inheriting with class syntax and it works perfect but not what I want
Date object inheritance with class:
class A extends Date {
constructor(){
super()
}
test(){
return 'whatever...'
}
}
Instance:
console.log(new A().getDay()) //3
console.log(new A().test()) //whatever...
It works perfect, but I don't want to use the class syntax.
question from:
https://stackoverflow.com/questions/65913269/prototype-object-date-inheritance-not-working 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…