使用require函数时,node.js中两个函数的继承存在问题。

这是我的情况:

function administrators () {
    this.user = 'bob';
}
administrators.prototype.print_user = function () {
    console.log(this.user);
}

/*******/


function helper() {}

helper.prototype = new administrators();

helper.prototype.change_administrator = function() {
    this.user = 'john';

}

var h = new helper();

h.print_user();
h.change_administrator();
h.print_user();

如您所见,我有两个功能:
  • administrations仅具有用户变量和print_user函数。
  • helpers继承了administrators的所有内容,然后添加了change_administrator,它更改了this.use中声明的administrators()

  • 这是问题:

    我想在单独的文件中拥有此功能(administratorshelper),例如:administrators.jshelper.js

    然后,我想将这两个文件包含在index.jsrequire中,并像上面的示例一样将administrators变量和函数继承给helper。

    附言我一直在寻找类似的问题,但与这种继承无关。

    最佳答案

    您需要从helpers.js文件中要求管理员。

    administrators.js

    function administrators () {
        this.user = 'bob';
    }
    administrators.prototype.print_user = function () {
        console.log(this.user);
    }
    
    module.exports = administrators;
    

    helpers.js
    var administrators = require('./administrators');
    
    function helper() {}
    
    helper.prototype = new administrators();
    
    helper.prototype.change_administrator = function() {
        this.user = 'john';
    };
    
    module.exports = helper;
    

    index.js
    var helper = require('./helpers');
    
    var h = new helper();
    
    h.print_user();
    h.change_administrator();
    h.print_user();
    

    09-17 16:35
    查看更多