ES6类和扩展内置的缓冲
问题描述:
我尝试的NodeJSES6类和扩展内置的缓冲
TypeError: Buffer2.from(...).slice2 is not a function
延长缓冲区对象,但它看起来就像我从来无法与新类
overwite我怎样才能让Buffer2.from回报BUFFER2?
ES6类和extends关键字
反正没有更好的做一个完全新的类呢?
class Buffer2 extends Buffer
{
constructor(obj, encoding)
{
console.log('Buffer2::constructor');
super(obj, encoding);
return this;
}
slice(start, end)
{
console.log('Buffer2::slice');
return this.slice(start, end)
}
slice2(start, length)
{
console.log('Buffer2::slice2');
return this.slice(start, start + length)
}
static from(obj, encoding)
{
console.log('Buffer2::from');
return new Buffer2(obj, encoding);
}
}
Buffer2.prototype.slice = function (start, end)
{
console.log('Buffer2::slice');
return this.slice(start, end)
}
Buffer2.prototype.slice2 = function (start, length)
{
return this.slice(start, start + length)
}
console.log(Buffer2, Buffer2.from('7E1D2C', 'hex').slice2(0, 1));
答
缓冲导出为一个函数,而不是类,在这里你可以看到源代码buffer.js。所以,您尝试使用ES6类继承而不是es6类,但是要运行。如果你想扩展本地模块 - 使用原型继承。但是我的建议是当你尝试向native modiles添加一些功能时,使用继承的组合。