2017-07-19 7 views
0

Ich habe eine Klasse exportiert, um einen Punkt in einem Gitter darzustellen. Diese Klasse hat eine "Distanz" -Methode.NodeJS: exportierte Klasse hat eine Methode, die undefined zurückgibt

Wenn ich diese Methode in einer anderen nodeJs-Datei verwende, ist das Ergebnis immer Undefined. Ich kann nicht verstehen warum.

Hier ist meine Quellcode:

const math = require('Math') 

function checkCoordinate(x) { 
if ((typeof x == 'number') && 
    (x > 0) && (x % 1 == 0)) { 
    return x 
    } 
else throw (new Error('ERR_INVALID_ARG_TYPE')) 
} 
/** 
    * Build a new square for a grid 
    * @class 
    * @classdesc Represent a square in a grid 
    */ 
class square { 
    constructor (abscissa, ordinate) { 
    try { 
     this.abscissa = checkCoordinate(abscissa) 
     this.ordinate = checkCoordinate(ordinate) 
    } catch (err) { 
     throw (err)} 
    } 

    distance (square2) { 
    if (square2 instanceof square) 
     return 
     math.ceil (
     math.sqrt(
      math.pow((this.abscissa-square2.abscissa), 2) + 
      math.pow((this.ordinate-square2.ordinate), 2) 
     ) 
    ) 
    throw (new Error('ERR_INVALID_ARG_TYPE')) 
    } 
} 

module.exports = square 

Wenn ich versuche, es zu benutzen:

var Square = require ('./objects/square.js') 

var sA = new Square(1,1) 
console.log(sA.distance(new Square(20,20))) 

Das Ergebnis ist nicht definiert:

$ npm start 

> [email protected] start D:\Documents\Programmation\NodeJS\target-rpg 
> node server.js 

undefined 

I 27. Stattdessen bekommen sollte Ich habe Undefined. Ich kann es nicht herausfinden.

Ich benutze Knoten 8.1.4

Irgendwelche Hilfe?

Antwort

0

Sie geben das Ergebnis ohne Berechnung zurück, indem Sie return und math.ceil in einer anderen Zeile angeben. Beide sollten auf der gleichen Linie sein.

return math.ceil(
    // sqrt code 
) 
+0

Oh. Es beweist, dass meine Dummheit keine Grenzen hat. Danke Mukesh –

Verwandte Themen