在其他语言的编译器领域中,类似的东西在被编译为退出循环时会得到优化,因此不会每次都创建一个新对象:
const arr = [1, 2, 3, 4, 5]
arr.map(num => {
const one_time = 5; // this never changes, can be lifted out of the loop.
return num * one_time;
})
我试图查看打字稿编译器是否更改了上面的代码,但似乎没有-也许还有其他事情可以解决?也许对象创建将分配该变量而从不对其进行更改。
我不希望ES2015这样做,因为它已经被解释了,但我很高兴会出错。
如果有人能告诉我将来如何最好地自己解决这个问题,奖励积分。
谢谢大家!