首页 > 解决方案 > setTimeout函数中的javascript胖箭头

问题描述

<script type="text/javascript">
  setTimeout(alert('1'), 1000);
  setTimeout(() => alert('a'), 1000); // second setTimeout method
</script>

1)第二个setTimeout()语句中“()=>”的含义是什么?

有时我看到胖箭头之前的() => 表示输入参数,而胖箭头之后的语句 => 表示实现,但是对于上面第二个 setTimeout() 方法,胖箭头似乎不是这个意思,因为 setTimeout( ) 确实需要两个输入参数(回调函数和延迟时间,以毫秒为单位),

2)和上面第二种setTimeout方法中,=>后面的语句是setTimeout()的入参,不是实现....

标签: javascriptarrow-functions

解决方案


它的语法糖也有不同的范围。

() => {}

相当于:

function(){

}

如果你看到一个没有那个的箭头函数{}意味着它的值将被返回:

() => someVal

相等的:

function(){
   return someVal;
}

在你的情况下:

setTimeout(() => alert('a'), 1000);

相当于:

setTimeout(function(){
   return alert('a')
}, 1000);

注意:箭头功能在 IE 上不起作用


推荐阅读