var result = Array(5).fill(['-', '-']);
console.log('before', result);
result[0][1] = 'modify result[0]';
console.log('after ', result);
如果 fill 傳進去的是 1 個物件
如上例中的 ['-', '-']
最後 result array 裡面的元素
都會是同 1 個物件的 reference
這會造成明明只是要改 1 個 element
卻變成 5 個 element 都一起生效
真是 1 個神奇的 bug
沒有留言:
張貼留言