Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript代码可读性-是否拆分为更小的函数?_Javascript_Angular_Function_Typescript_Ecmascript 6 - Fatal编程技术网

Javascript代码可读性-是否拆分为更小的函数?

Javascript代码可读性-是否拆分为更小的函数?,javascript,angular,function,typescript,ecmascript-6,Javascript,Angular,Function,Typescript,Ecmascript 6,这是一个简单的问题,但我只是想得到一些建议 我正在用Angular构建一个简单的税务计算器应用程序,目前我所有的计算工作都很好,但当涉及到代码设计时,我不知道我是否用正确的方法进行计算。所以 我第一次写代码是什么时候,我用这个来计算退休金金额的 this.superAnnuationAmount = (this.incomeAmount / 100) * this.superAnnuationPercentage 很简单。但是现在我来清理我的代码,我想如果我这样做的话,它看起来会更好,读起来也

这是一个简单的问题,但我只是想得到一些建议

我正在用Angular构建一个简单的税务计算器应用程序,目前我所有的计算工作都很好,但当涉及到代码设计时,我不知道我是否用正确的方法进行计算。所以

我第一次写代码是什么时候,我用这个来计算退休金金额的

this.superAnnuationAmount = (this.incomeAmount / 100) * this.superAnnuationPercentage
很简单。但是现在我来清理我的代码,我想如果我这样做的话,它看起来会更好,读起来也会更好

this.superAnnuationAmount = this.getSuperannuationAmount(this.incomeAmount, this.superAnnuationPercentage);

private getSuperannuationAmount(income: number, percentage: number): number {
    return (income / 100) * percentage;
}
现在我知道它几乎没有什么区别,除了让它更可读之外,我想。对于更复杂的函数,我也将采用这种方法。然而,在我的IDE中,我有
方法的linting错误,它可以更静态


它怎么能更静态呢?采用大函数并将其放入可读性更强的小函数中是正确的方法吗?

由于您的函数不在对象上使用实例变量(它不使用
),因此可以将其设置为静态

private static getSuperannuationAmount(income: number, percentage: number): number {
    return (income / 100) * percentage;
}
不过,你不必这么做——只是你的皮棉在向你袭来

我认为更干净的方法是使用getter:

public get superAnnuationAmount(): number {
    return (this.incomeAmount / 100) * this.superAnnuationPercentage;
}

现在,您可以只使用常规的
退休金挂载
,它将使用实例变量进行计算。

由于您的函数不在对象上使用实例变量(它不使用
),您可以将其设为静态

private static getSuperannuationAmount(income: number, percentage: number): number {
    return (income / 100) * percentage;
}
不过,你不必这么做——只是你的皮棉在向你袭来

我认为更干净的方法是使用getter:

public get superAnnuationAmount(): number {
    return (this.incomeAmount / 100) * this.superAnnuationPercentage;
}
现在,您只需使用常规的
退休金挂载量
,它将使用实例变量进行计算。

您好,它可以关联到。 静态方法存在于类而不是对象实例上。请提供类结构以了解更多详细信息。

您好,它可以与。
静态方法存在于类而不是对象实例上。请提供类结构以了解更多详细信息。

老实说,如果我是必须维护代码的开发人员,我更喜欢第一个版本,因为它足够清晰,特别是因为
退休金金额
变量表示右边数学表达式的意图。在第二个版本中,我不会一目了然地获得所有信息,逻辑现在处于两个不同的位置,而可读性的回报并不能证明这种分散性是合理的(如果只需要在一个位置执行计算,则使方法静态会使情况变得更糟)。

老实说,如果我是必须维护代码的开发人员,我更喜欢第一个版本,因为它足够清晰,特别是因为
superAnnuationAmount
变量表示右侧数学表达式的意图。在第二个版本中,我不会一目了然地获得所有信息,逻辑现在处于两个不同的位置,而可读性的回报并不能证明这种分散性是合理的(如果只需要在一个位置执行计算,则使方法静态会使情况变得更糟)。

@Pac0问题不一样,他也在问其他问题,但这个问题的标题确实可以说得更好。同意-将更新标题我删除了我的重复标记@Pac0的可能重复项问题不一样,他也在问其他问题,但是这个问题的标题确实可以说得更好。同意-将更新标题我删除了我的重复标记可能重复使用getter看起来很有趣-将现在查看getter的使用看起来很有趣-将现在查看我听到了你的说法-谢谢你的意见:)我听到了什么你的话-谢谢你的意见:)