从另一个对象调用原型方法

时间:2018-05-29 19:37:02

标签: javascript prototype

是否可以在原型方法中调用另一个原型方法?如下所示。

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 个答案:

答案 0 :(得分:1)

是的,你当然可以。您的代码不起作用的唯一原因是您在第3行 shadowing App

工作代码:

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>