JSFiddle - React, Tailwind, and code Playground

JavaScript

console.clear();

function ClassA() {
	this.property = "Ap";
	this.method = function() {
		return "Am"
	};
}

function ClassB() {
	this.property = "Bp";
}
ClassB.prototype = new ClassA();

var b1 = new ClassB();

console.log("ClassB hérite de ClassA et aucune méthode n'est déclarée dans ClassB");
console.log("b1.property", b1.property);// Affiche "Bp"
console.log("b1.method()", b1.method());// Affiche "Am"

ClassB.prototype.method = function() {
	return "Bm";
};
console.log("ClassB hérite de ClassA mais sa méthode est ré-écrite");
console.log("b1.method()", b1.method());// Affiche "Bm"

function ClassC() {
	this.property = "Cp";
	this.method = function() {
		return "Cm";
	};
}

ClassB.prototype = new ClassC();
console.log("ClassB hérite de ClassC");
console.log("b1.method()", b1.method());// Affiche "Bm"

var b2 = new ClassB();
console.log("b2.method()", b2.method());// Affiche "Cm"

ClassB.prototype = new ClassA();
console.log("ClassB hérite à nouveau de ClassA");
console.log("b1.method()", b1.method());// Affiche "Bm"
console.log("b2.method()", b2.method());// Affiche "Cm"

var b3 = new ClassB();
console.log("b3.method()", b3.method());// Affiche "Am"

console.log("Vous avez 3 objets de type ClassB et pourtant, ils ont tous les 3 une signature différente.");