Benimo
Benimo

Reputation: 167

Calling prototype method from another object

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

Upvotes: 1

Views: 35

Answers (1)

JLRishe
JLRishe

Reputation: 101680

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>

Upvotes: 1

Related Questions