JavaScript中的多个返回值

时间:2019-06-11 17:50:55

标签: javascript ecmascript-6

  

注意:我看过this identically named question和其他几个。我的问题有些不同。

我正在阅读an article,并且遇到了以前从未见过的JS模式。我一直在尝试使用它(下面有详细信息),但它仍然没有任何意义。搜索也干了。

Here's the pattern(以上文章中引用的代码)。具体行:

return 'The error is', err;

我试图在控制台中更简单地重现此内容(在重现基本上下文的情况下)。

obj = {
    resolve(whatever, another) {
      console.log(whatever, another);
      return 'The error is', whatever;
    }
}

第一次尝试是使用单个变量来获取收益:

a = obj.resolve('Hey', 'there');
Hey there // What is console logged
"Hey" // The return -- NOT "The error is"
a
"Hey" // a value equals the return

然后,我尝试将两个返回值作为非结构化数组进行访问:

[b, c] = obj.resolve('Whats', 'up');
Whats up // What is console logged
"Whats" // The return value
b
"W" // b value
c
"h" // c value

最后,为了踢球,我尝试了对象分解:

{d, e} = obj.resolve('Another', 'one');
Uncaught SyntaxError: Unexpected token =

为确认似乎只返回了 last 值,我也尝试过这样做:

function func (arg) {
  return 'First', arg, 'Third';
}

z = func('hello')
"Third" // The return
z
"Third"

有人知道这是怎么回事/ JavaScript如何读取此代码吗?看起来只返回了最终值。是否有有关其工作原理的文档?是否有任何理由使用此模式?似乎除了最后一个返回值以外的所有内容都被忽略了。

0 个答案:

没有答案