javascript中的胖箭头setTimeout函数[重复]。

问题描述 投票:0回答:1
<script type="text/javascript">
  setTimeout(alert('1'), 1000);
  setTimeout(() => alert('a'), 1000); // second setTimeout method
</script>

1)第二条setTimeout()语句中的"()=> "是什么意思?

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

2)而在上面第二个setTimeout方法中,=>后面的语句是setTimeout()的输入参数,而不是实现......。

javascript arrow-functions
1个回答
0
投票

你定义了一个函数,即调用其他函数: alert

同为。

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

1
投票

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

() => {}

相当于:。

function(){

}

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

() => someVal

等价的。

function(){
   return someVal;
}

在你的例子中

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

相当于:

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

注意: 箭头函数在IE上不工作


-1
投票

arrowFunction它是function(){......}的一个语法糖,所以实际上是

() => {}

==

function() {
}
© www.soinside.com 2019 - 2024. All rights reserved.