11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
Je voudrais ajouter une méthode à un prototype d'objet.
L'objet a l'allure suivante

MonObjet = function(...) {
    ......
    this.fonction1 = function() {
        ......
        if(this.fonction2) this.fonction2(...);
    }

Dans un certain contexte j'exécute la fonction suivante:

function ExtendFunctions() {
    MonObjet.fonction2 = function(...) {
        ........
   }
   .......
}

L'objectif est d'ajouter this.fonction2 au prototype et de l'exécuter à la fin de this.fonction1
Je n'arrive pas à faire fonctionner ce design.
Une idée?
Modérateur
Et l'eau,


* manière classique

function MonObjet(){
    let un_attr = 'bla';
}


MonObjet.prototype.ma_function_a = function () {
    alert('ma_function_a');
};

MonObjet.prototype.ma_function_b = function () {
    alert('ma_function_b');
};

let o = new MonObjet()

o.ma_function_a();
o.ma_function_b();


*ma manière de faire quand je faisais de l'ES5....

function MonObjet(){
    let un_attr = 'bla';

    return {
        ma_function_a : function(){
            alert('ma_function_a');
        },
        ma_function_b : function(){
            alert('ma_function_b');
        },
    }
}

let o = new MonObjet()

o.ma_function_a();
o.ma_function_b();
Merci de ta réponse
En dormant dessus j’ai compris pourquoi ce que je voulais faire ne marche pas, et plutôt que de chercher à le faire marcher j’ai décidé de changer de design. Trop long de vous expliquer exactement ce que j’avais en tête, le pourquoi et pourquoi ça ne marche pas