JSFiddle - React, Tailwind, and code Playground

JavaScript

// 1 - La fonction non-prototype 'setName()' du parent est prioritaire sur le fils
// Donc : il est dangereux d'utiliser les fonctions placées hors-prototype 
// -> résultat : on impose des fonctions communes à toutes les 'occurences' d'une classe'. 
// -> On rigidifie la sctructure des données de javascript. 
//
// 2 - Lorsqu'on ajoute une variable au père durant le run-time -> elle n'est pas reconnue par le fils
// Donc les fonctions sont modifables dans le run-time, mais pas les variables. 

var UserPrototypeP = (function () {
        function UserPrototypeP() {
            this.getName = function() {
                return this.nameP;
            };
            this.setName = function(n) {
                this.nameP = n+"proto";
            };
        };
        return UserPrototypeP;
    })();

    var __extends = this.__extends || function (d, b) {
            console.log(b);
        for (var p in b) {
            if (b.hasOwnProperty(p)) d[p] = b[p];
        }
		function __() { this.constructor = d; }
		__.prototype = b.prototype;
		d.prototype = new __();
    };

    var UserPrototype = (function (_super) {
        __extends(UserPrototype, _super);
        function UserPrototype() {
            _super.call(this);
            this.name = "Dave";
        };
        UserPrototype.prototype.getName = function() {
            return this.name;
        };
        UserPrototype.prototype.setName = function(n) {
            this.name = n;
        };
        return UserPrototype;
    })(UserPrototypeP);

    //Test 1
    var newUsera = new UserPrototype(); //ici
	
    
    // La fonction du père est prioritaire sur le fils.
    newUsera.setName("tata");
    document.write("setName: '" + newUsera.getName() + "'<br>");

    var newUserP = new UserPrototypeP(); //ici
    newUserP.pseudo = "meP";
    UserPrototypeP.prototype.getPseudo=function(){return this.pseudo;}
    // ne récupère pas la variable du père
    document.write("peudo proptotype: '" +...