2017-07-19 10 views
0

グリッド内のポイントを表すクラスをエクスポートしました。このクラスには「距離」メソッドがあります。NodeJS:エクスポートされたクラスに未定義のメソッドが返されます

このメソッドを別のnodeJsファイルで使用すると、結果は常に未定義です。 理由を理解できません。私はそれを使用しようとすると

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 

:ここ

は、私のソースコードである

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

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

結果は未定義です:

$ npm start 

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

undefined 

は、私が代わりに27を取得する必要がありますそれは私がUndefinedを得た。 私はそれを理解することはできません。

私は、ノード8.1.4

すべてのヘルプを使用していますか?

答えて

0

returnmath.ceilを別の行に記述することで、計算せずに結果を返します。どちらも同じ行になければなりません。

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

です。私の愚かさには限界がないことが証明されています。 ありがとうMukesh –

関連する問題