我有一个关于最佳实践的问题,我刚刚读到了:https://github.com/ryanmcdermott/clean-code-javascript#remove-duplicate-code
问题是关于变量赋值的
let portfolio = employee.getGithubLink();
if (employee.type === 'manager') {
portfolio = employee.getMBAProjects();
}我的方式这样做,以便实例化投资组合只有一次。
if (employee.type === 'manager') {
let portfolio = employee.getMBAProjects();
} else {
let portfolio = employee.getGithubLink();
}我的问题是:为什么实例化一个变量并重写它比只用"else“语句实例化一次更可取。
发布于 2017-01-18 00:36:54
我会考虑
const portfolio = (employee.type === 'manager') ? employee.getMBAProjects() : employee.getGithubLink();作为一种选择。你不应该在没有正当理由的情况下覆盖/改变变量。
发布于 2017-01-18 11:24:43
首先是,如果你用let定义变量,它将只在定义它的块范围内可用(在{ }内)。因此,如果按您的方式操作,变量portfolio将是undefined外部条件语句。在此选项中,您可以使用var关键字,它将起作用
if (employee.type === 'manager') {
var portfolio = employee.getMBAProjects();
} else {
var portfolio = employee.getGithubLink();
}但是现在谁在使用var呢?
二级,对于我来说,我认为这种方式对于其他开发人员来说很容易理解。所有的风格指南都来自于代码对开发人员(包括你)的可读性和可理解性。
更容易理解的是看到一个特定变量的实例化。在上面的例子中,我看到了两个实例化(不管只有一个会被执行)。如果你的代码有很长的else if链呢?
第三,,如果你在条件语句之外实例化变量,你需要写的更少,这是很好的。
https://stackoverflow.com/questions/41702283
复制相似问题