我导出了一个类来表示网格中的一个点。这个班级有一个"距离"方法。
当我在另一个nodeJs文件中使用此方法时,结果始终为Undefined。 我不明白为什么。
这是我的源代码:
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
> target-rpg@1.0.0 start D:\Documents\Programmation\NodeJS\target-rpg
> node server.js
undefined
我应该得到27.而不是它我得到了未定义。 我无法弄明白。
我正在使用节点8.1.4
任何帮助?
答案 0 :(得分:0)
通过在不同的行上提及return
和math.ceil
,您将返回结果而不计算结果。两者都应该在同一条线上。
return math.ceil(
// sqrt code
)