Я бы вообще отказался от класса в пользу функции:
function prettyPrint(data) {
console.log(JSON.stringify(data));
}
function createMatrix3D(initObject) {
const { x, y, z } = initObject;
const buffer = Array.from(Array(z), (_, i) =>
Array.from(Array(y), (_, j) =>
Array.from(Array(x), (_, k) => j * x + k + 1 + ((x * y * z) / z) * i)
)
);
return {
buffer,
get: (coords) => buffer[coords.z][coords.y][coords.x],
set: (coords, value) => {
buffer[coords.z][coords.y][coords.x] = value;
},
};
}
const matrix = createMatrix3D({ x: 2, y: 2, z: 2 });
prettyPrint(matrix.get({ x: 1, y: 1, z: 1 }));
prettyPrint(matrix.buffer);
Думаю нет смысл в классе ради двух методов