我有一个与短路评估有关的问题。这是代码:
function updateRecords(records, id, prop, value) { if (value === '')
{
delete records[id][prop]; } else if (prop === 'tracks') {
records[id][prop] = records[id][prop] || [ ]; // <--- evaluation, see below for explanation
records[id][prop].push(value); } else {
records[id][prop] = value; }
return records;
}
短路评估在这个函数中究竟做了什么?
因为你也可以这样写那行;
记录[id][prop] = [值] 或记录[id][prop] = 记录[id][prop] || [];
为什么 [ ] 替换 [value] ?我知道逻辑或运算符将忽略原始脚本中的第一个值,但它如何自动将值放入空 []?
谢谢你。:)