JavaScript中函数作为参数进⾏传递时的括号问题
JS中经常会遇到把⼀个函数作为参数传递给另⼀个函数。那么通常作为参数进⾏传递的函数要不要加括号呢?
这⾥就要讲到括号的⼆义性:
当函数名后加上括号时,通常会执⾏函数体本⾝。如果函数有返回值时,此时会得到函数的返回值;
当函数名后不加括号时,其实质上是⼀个函数指针,只是⽤于到函数体的位置,不会直接执⾏函数体;sort函数 js
因此,如果时把函数作为参数进⾏值传递时,通常不需要加括号,只是把它当做⼀个函数指针;但是如果要进⾏函数调⽤的时候,由于是想要得到函数的返回值,因此必须要加上括号。
下边的例⼦可以作为⽐较(代码来⾃w3cschool):
此处使⽤函数名加括号,会产⽣⼀个返回值,其实质是相当于直接调⽤了JavaScript的sort函数。由于sort()函数排序实质是字符串排序,因此最终的排序结果是⼀个字符串排序的结果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论