我正在创建一个类来将整数转换为自然语言中的句子。我正在进行一些基本检查,以确保给定的数字在 -9999 和 9999 之间。我觉得这在大多数情况下都有效。
但是,一旦程序到达“this.convertSentence”——通过 try/catch 块和错误检查,我想知道现在最好的做法是将问题分解为需要运行的各种函数调用以获得任务完成。
我打算用 this.convertSentence 做一些检查数字大小等......然后将数字发送到单独的函数以做更多工作并让它们传播一个句子以返回。我不确定我是否想要在我的班级中使用一个变量,或者我是否应该传递一个变量来构建句子。我想知道这样的事情。
/**
* A class for converting an integer to a natrual language sentence in Spanish.
* Accepts integers from -9999 to 9999
*
*/
function NumberToWord () {
this.getSentence = function(number) {
// Check for erroneous input. Accepts only -9999 thru 9999 integers
try
{
if(number === parseInt(number) && number > -10000 && number < 10000) {
return this.convertSentence(number);
}
else {
throw new Error("Argument is not an integer between -9999 and 9999");
}
}
catch(e){
console.log(e.name + " " + e.message);
}
};
this.convertSentence = function(number) {
return "This is where I'll start the logic for the sentence";
};
}
var numberToWord = new NumberToWord();
// Tests
console.log(numberToWord.getSentence(9999));
console.log(numberToWord.getSentence(-9999));
console.log(numberToWord.getSentence(10000));
console.log(numberToWord.getSentence(-10000));
console.log(numberToWord.getSentence(0));
console.log(numberToWord.getSentence(1.1));
console.log(numberToWord.getSentence(-9999.1));
console.log(numberToWord.getSentence(10001));
console.log(numberToWord.getSentence(-10001));
console.log(numberToWord.getSentence(5.5));
console.log(numberToWord.getSentence());