2016-02-19 192 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(); 
相關問題