2015-05-14 66 views
0

我有一個基類延伸時不派生類可用的:使用Javascript - 基類方法使用lodAsh

class Base { 
    constructor() { 
     this.name = "base_class"  
    } 

    getBaseName() { 
    return "base" 
    } 

} 

和派生類

var _ = require('lodash'); 
class Derived { 
    constructor() { 
     this.name = "derived" 
    } 

    getDerivedName() { 
     return "derived" 
    } 
} 
_.extend(Derived.prototype, Base) 

我期待具有在getBaseName可用派生類。但事實並非如此。我該怎麼做?我錯過了什麼?

var derived = new Derived(); 
console.log(derived.getBaseName) 
-- undefined 
+0

不應該是'_.extend(Derived.prototype,Base.prototype)'? –

回答

2

爲什麼使用lodash擴展ES6類?你不能只使用extends關鍵字嗎?

class Derived extends Base { 
    constructor() { 
     super(); 
     this.name = "derived" 
    } 
    getDerivedName() { 
     return this.name; 
    } 
} 
+0

我不知道實際的答案,但它被告知,使用babel擴展與IE有一些問題,所以我們不允許使用擴展。 – jumpa

+1

我建議你看一下traceur編譯器,然後https://github.com/google/traceur-compiler;如果它打破了這個非常基本的用例,那麼對於使用babel進行類學習並沒有多大意義。 –

+0

好的我會看看它。這裏有關延伸的警告 - https://babeljs.io/docs/usage/caveats/ – jumpa