2016-10-20 37 views
1

我想在原生JS中擴展數組。但不只是修改原型。我想我會用新的class es2015語法來嘗試一下。巴貝爾不能正確地擴展數組?

嘗試它本地(鉻已支持它 - yayヽ('▽`)ノ),它的一切正常工作。切換到巴貝爾更好的支持,它停止工作。嘗試了一下之後,我看到,新對象中沒有任何方法可用。測試代碼:

class CustomList extends Array { 
    constructor(...elms) { 
    super(...elms); 

    this.testprop = "test"; 
    } 

    customMethod(a) { 
    console.log(a, this); 
    } 
} 

(test in babel)

+1

見https://babeljs.io/docs/usage/caveats/#classes – undefined

+0

@ unlucky13好像我有點...不吉利? 感謝您的評論。這看起來就是這樣。心中加入它作爲一個aswer,所以我可以接受它?謝謝」 –

回答

3

Babel.js不能正確地擴展內置類:

內置類如DateArrayDOM等無法正常由於ES5的限制而被分類(針對es2015-classes插件)。您可以嘗試使用基於Object.setPrototypeOfReflect.constructbabel-plugin-transform-builtin-extend,但它也有一些限制。

- https://babeljs.io/docs/usage/caveats/#classes