从构造函数中调用类方法

Viv*_*mar 17 javascript ecmascript-6

从构造函数中调用类方法时出错.是否可以从构造函数中调用方法?我尝试从派生类的构造函数中调用基类方法,但我仍然收到错误.

'use strict';

class Base {
    constructor() {
        this.val = 10;
        init();
    }

    init() {
        console.log('this.val = ' + this.val);
    }
};

class Derived extends Base {
    constructor() {
        super();
    }
};

var d = new Derived();
Run Code Online (Sandbox Code Playgroud)

➜js_programsnode class1.js /media/vi/DATA/programs/web/js/js_programs/class1.js:7 init(); ^

ReferenceError:在Derived(/ media/vi/DATA/programs/web/js /)的Derived.Base(/media/vi/DATA/programs/web/js/js_programs/class1.js:7:9)中未定义init js_programs/class1.js:18:14)在Object.(/media/vi/DATA/programs/web/js/js_programs/class1.js:23:9)在Module._compile(module.js:435:26)的Object.Module._extensions..js(module.js) :442:10)在Module.load(module.js:356:32)在Function.Module._load(module.js:311:12)的Function.Module.runMain(module.js:467:10)启动时(node.js:136:18)在node.js:963:3➜js_programs

dec*_*eze 27

你调用的函数 init(),而不是方法 init的任一Base或当前对象.当前作用域或任何父作用域中不存在此类函数.你需要引用你的对象:

this.init();
Run Code Online (Sandbox Code Playgroud)


mad*_*ox2 11

您缺少this关键字:

this.init();
Run Code Online (Sandbox Code Playgroud)