Используя этот скрипт, я сталкиваюсь с этой ошибкой Not a number value, которую я не понимаю,
Как я могу это исправить ?
<!DOCTYPE html>
<html>
<head>
<title>The Cube</title>
</head>
<body>
<script>
var cube = function(side) {
this._side = side;
this.volume = function() {
var vol = Math.pow(this.side, 3);
return vol;
};
this.surface = function() {
var totalLength = 12 * this.side;
return totalLength;
};
};
var firstCube = new cube(2);
document.write("Volumul " + firstCube.volume() + "<br>");
document.write("Total length " + firstCube.surface());
</script>
</body>
</html>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы присваиваете side значение this._side. Поэтому вы можете получить к нему доступ как side внутри функции и как this._side внутри каждого метода (поскольку ваши методы тоже находятся внутри функции, оба будут работать). Но this.side не существует, он не определен, и его умножение дает Not a Number.
Как бы я это написал:
class Cube {
constructor(side) { this.side = side; }
get volume() { return Math.pow(this.side, 3); }
get surface() { return 12 * this.side; }
}
const cube = new Cube(3);
console.info(cube.volume, cube.surface);
Большое спасибо за Вашу помощь .
Кстати, поверхность куба - это
Math.pow(side, 2) * 6, прямо скажу.