Как исправить значение «Не число»? - PullRequest
0 голосов
/ 27 октября 2018

Используя этот скрипт, я сталкиваюсь с этой ошибкой 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>

1 Ответ

0 голосов
/ 27 октября 2018

Вы присваиваете значение side для this._side. Поэтому вы можете обращаться к нему как side внутри функции и как this._side внутри каждого метода (так как ваши методы тоже внутри функции, оба будут работать). Но this.side не существует, он не определен, и при умножении его получается не число.


Как бы я написал это:

 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.log(cube.volume, cube.surface);
...