Мне нужно наследовать DataView объект, чтобы создать свой собственный type
и добавить дополнительные методы и т. Д. Но я немного запутался, как сделать это правильно. Я пытался сделать так:
var CFDataView = function() {
this.offset = 0;
};
CFDataView.prototype.__proto__ = DataView.prototype;
CFDataView.prototype.readU8 = function() {
if (this.byteLength >= this.offset+1) {
return this.getUint8(this.offset++);
} else {
return null;
}
};
Но получил ошибку:
DataView.prototype.byteLength вызывается на несовместимом приемнике CFDataView
Из предложений я попытался сделать так:
var CFDataView = function CFDataView(buffer, byteOffset, byteLength) {
DataView.call(this, buffer, byteOffset, byteLength);
this.offset = 0;
};
CFDataView.prototype = Object.create(DataView.prototype);
CFDataView.prototype.constructor = CFDataView;
Но получите ошибку:
TypeError: Конструктор DataView требует 'new'