当前位置:首页>正文

jquery调用函数不写后面括号 在JQuery中回调函数没加小括号,为什么

2023-04-09 13:47:10 互联网 未知

在JQuery中回调函数没加小括号,为什么

你要知道加上“()”代表执行方法,而没有加上“()”的函数只是一个变量,不加上括号就是传递一个函数作为回调函数。
如果回调函数加上小括号,那顺序 执行回调函数 > 执行jQuery函数,而且“JQuery中回调函数”,这个“回调函数”就要变成 顺序一返回的值。
比如:

javascript调用函数时,函数名没加括号

事情是这样的
function move(){} <=> move = function(){}

也就是说 move是个变量,存储的是函数本身
你把函数本身传给setInterval,他就会每隔100毫秒执行一次 这个函数

而加了括号以后,函数直接就运行了,所以你把move()运行后的值传给了setInterval,函数move又没有返回值,那setInterval每100毫秒执行一次“空”,所以啥都没干
没有理解就追问哦~

JavaScript 函数调用时带括号和不带括号的区别

带括号是函数,不带括号是方法,如果是函数,那么带()的立即执行。而不带()的可以理解为C里的指针,指向这个函数。比如
function func(){
alert(aaaa)

}
var a=func()//执行弹出‘aaaa’  ---------------弹出一次
var b=func//此时b是一个函数,调用b会执行alert(aaaa)
b()//调用----------又弹出一次----------一共弹出两次

JavaScript函数后面加不加括号的区别

加括号表示执行该函数,不加括号仅表示定义了一个函数对象,比如:

var f=function(){
return 1

}
此时f是一个function对象

var f=function(){
return 1

}()
此时f=1

javascript 函数调用不带括号问题

函数名可以作为参数,传统语言的PASCAL里面经常有,JAVA更是如此。

当mekeTable和loadXML都是函数的时候,loadXML(makeTable)和loadXML(makeTable())是不同的。

loadXML(makeTable)表示把函数名makeTable作为实际参数调用,在loadXML函数定义里面对应的形式参数hande作为函数调用的时候,就对makeTable函数进行相应的调用,函数里面根据需要可以多次对handle进行使用。

loadXML(makeTable())是把makeTable返回的结果作为loadXML的参数进行调用,里面的函数实际上先执行,和上面的以函数名作为参数完全不同。

补充:是你的那个意思,这种机制的好处是很多的,WINDOWS系统大量回调函数就是利用这个机制来实现,某些通用排序函数,允许设置自己的比较函数。