注意:我看过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如何读取此代码吗?看起来只返回了最终值。是否有有关其工作原理的文档?是否有任何理由使用此模式?似乎除了最后一个返回值以外的所有内容都被忽略了。