2016-04-01 66 views
2

我無法運行此MyError類中的任何方法。使用ES6類擴展錯誤

class MyError extends Error { 
    constructor(message) { 
    super() 
    this.name = 'MyError' 
    this.message = message 
    this.stack = (new Error(message)).stack 
    return this 
    } 
    doSomething() { 
    return this.message + " dolphin" 
    } 
} 

let myError = new MyError('Invalid Form.') 

console.log(myError.doSomething()) 

出於某種原因,這是給我的錯誤:

console.log(myError.doSomething()); 
        ^

TypeError: myError.doSomething is not a function 
+0

[對我的作品(https://jsfiddle.net/wLmbqg81/) – Andy

+0

這裏可能有一些見解http://stackoverflow.com/a/32750746/340688 – ThomasReggi

+0

@AndyI認爲這是一個通天塔( – ThomasReggi

回答

0

發現你不能擴展錯誤。

有一個包es6-error與一個錯誤,你可以擴展。

import ExtendableError from 'es6-error'; 

class MyError extends ExtendableError { 
    constructor(message) { 
    super() 
    this.name = 'MyError' 
    this.message = message 
    this.stack = (new Error(message)).stack 
    return this 
    } 
    doSomething() { 
    return this.message + " dolphin" 
    } 
} 

let myError = new MyError('Invalid Form.') 

console.log(myError.doSomething()) 
+0

可能值得在你的回答中加入(Babel)的原因,並附上你評論中的鏈接以使其明確。 – Andy