0

我有一个与短路评估有关的问题。这是代码:

 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] ?我知道逻辑或运算符将忽略原始脚本中的第一个值,但它如何自动将值放入空 []?

谢谢你。:)

4

0 回答 0