我想创建一个名为Matrix4
的类,该类扩展了Float32Array
。我希望能够用创建16个元素的数组的构造函数覆盖Float32Array
构造函数(通常我会调用new Float32Array(16)
,但是现在我只想new Matrix4
)。
// This function should override the Float32Array constructor
// And create a Matrix4 object with the size of 16 elements
var Matrix4 = function() {
Float32Array.call(this, 16);
};
Matrix4.prototype = new Float32Array;
我从这段代码中得到的错误是:
Constructor Float32Array requires 'new'
最佳答案
您无法使用老式的ES6之前的语法扩展Array
或Float32Array
之类的内置对象。唯一的方法是使用a class..extends
statement:
class Matrix4 extends Float32Array {
constructor() {
super(16);
}
}
let matrix = new Matrix4;
console.log(matrix.length); // 16