使用Babel扩展ES6中的内置本机

我正在使用Babel通过内置的本机Array扩展我的课程


class NewArray extends Array {

  first() {

    return this[0];

  }

}


var a = new NewArray(1, 2, 3);

console.log(a.length); // 3

console.log(a); // [ 1, 2, 3 ]

console.log(a.first()); // trigger error

在a.first()中,出现此错误:


console.log(a.first());

              ^ 


TypeError: a.first is not a function

我是否应该做更多的事情来扩展内置的本机?


谢谢!


守候你守候我
浏览 346回答 3
3回答

千巷猫影

尽管我不明白为什么会收到错误(我无法重现此错误),但是您不会从first()函数中获得想要的结果。您可以执行以下操作:   class NewArray extends Array {      constructor(){        super();        this.first = function(){ return this[0]; }      }    }    var a = new NewArray();    a.push(10);    console.log(a.first()); // 10
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript