Hay*_*yan 1 javascript object ecmascript-6
寻找最佳实践建议。
将函数调用for of作为可迭代对象是一个好习惯吗?
const obj = {key1:'a', key2:'b'};
for(const i of Object.keys(obj)){ ... }
Run Code Online (Sandbox Code Playgroud)
或更好地拥有
const obj = {key1:'a', key2:'b'};
const allKeys = Object.keys(obj);
for(const i of allKeys){ ... }
Run Code Online (Sandbox Code Playgroud)
不是在循环的每次迭代中都会调用 Object.keys 函数吗?
你可以通过模拟类似的案例来检查它
function A(){
console.log('function called');
return [1, 2, 3, 4, 5];
}
for(let i of A()){
console.log(i);
}Run Code Online (Sandbox Code Playgroud)
正如你所看到的 A() 只被调用一次