2016-02-19 194 views
3

从构造函数调用类方法时出现错误。有没有可能从构造函数调用一个方法?我试图从派生类的构造函数中调用基类方法,但仍然出现错误。从构造函数调用类方法

'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(); 

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

ReferenceError: init is not defined at Derived.Base (/media/vi/DATA/programs/web/js/js_programs/class1.js:7:9) at Derived (/media/vi/DATA/programs/web/js/js_programs/class1.js:18:14) at Object. (/media/vi/DATA/programs/web/js/js_programs/class1.js:23:9) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Function.Module.runMain (module.js:467:10) at startup (node.js:136:18) at node.js:963:3 ➜ js_programs

回答

9

你调用功能init(),而不是方法要么Baseinit或当前对象。当前作用域或任何父作用域中不存在这样的函数。你需要参考你的对象:

this.init(); 
2

你缺少this关键字:

this.init(); 
相关问题