1

Is it possible to call another prototype method inside a prototype method ? Like below.

jQuery(document).ready(function ($) {
    let gui = new GUI();
    let App = new App(gui);
});

var App = function(gui) {
    this.gui = gui;
    this.init();
    return this;
};

App.prototype.init = function() {
    this.gui.test();
};

var GUI = function() {
    return this;
};

GUI.prototype.test = function() {
    console.log("Test");
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

I would like to call something like this.

Best regards and thx for ur help

1
  • 1
    @KevinBoucher Since test is a method on this.gui, this.gui.test() is correct.
    – JLRishe
    Commented May 29, 2018 at 19:45

1 Answer 1

1

Yes, you certainly can. The only reason your code doesn't work is that you are shadowing App on the 3rd line.

Working code:

jQuery(document).ready(function ($) {
    let gui = new GUI();
    let app = new App(gui);
});

var App = function(gui) {
    this.gui = gui;
    this.init();
    return this;
};

App.prototype.init = function() {
    this.gui.test();
};

var GUI = function() {
    return this;
};

GUI.prototype.test = function() {
    console.log("Test");
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1
  • Lower case a in app: let app = new App(gui); Commented May 29, 2018 at 19:53

Not the answer you're looking for? Browse other questions tagged or ask your own question.