箭头函数下:
<script>
let s = new Set();
s.add(1).add('b').add(2);
const obj = {};
s.forEach((value, key, set) => {
console.log(this);
}, obj);
</script>
非箭头函数下:
<script>
const set = new Set();
set.add(1).add(5).add(8);
set.forEach(function(value, key, set) {
console.log(value, key, set);
console.log(set === set);
console.log(this); //非严格模式下指向window
}, document); //改变this指向
</script>
在这里可以清楚的看到在普通函数下可以改变this指向;但在箭头汗水下无论怎么改变this指向,其最终都是指向window