返回一个值而不是将它存储到一个被视为不良操作的变量中?

时间:2016-09-09 16:30:04

标签: javascript

给出以下功能:

  function lamePathValidator(path) {
    if (typeof path !== 'string') {
      throw new TypeError(`Invalid path "${path}": should be a string.`);
    }

    return path;
  }

如果在没有将返回值存储到变量的情况下偶尔使用它会被认为是不好的做法吗?

...
lamePathValidator('./data');
...

编辑:我需要返回值的唯一用例是构造函数中的属性赋值,例如:

constructor(basepath) {
  this._basepath = this._validatePath(basepath);
}

我当然可以写:

constructor(basepath) {
  this._validatePath(basepath)
  this._basepath = basepath;
}

前一块更简洁。

编辑#2 : 我也可以将构造函数参数传递给_validateAll(params)函数,因为它们实际上都没有以任何方式被更改。它毕竟是“验证”,而不是“消毒”。 :)

2 个答案:

答案 0 :(得分:2)

有许多函数可以返回并不总是有用的数据,但有时会是。在那些不需要的情况下不存储输出的情况是有意义的。

但是,如果返回值永远不会有用,那么您不应该首先返回它。在你的示例函数中,路径没有被改变,因此没有理由返回它,调用代码已经有了它。

答案 1 :(得分:1)

如果需要,函数可以返回值。 不必从中返回一些值。在您的情况下,无需返回任何值。

阅读js功能文档here