Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在事件回调时将参数传递给_Javascript_Jquery - Fatal编程技术网

Javascript 在事件回调时将参数传递给

Javascript 在事件回调时将参数传递给,javascript,jquery,Javascript,Jquery,我想我错过了javascript事件的一些基础知识 smb能否解释为什么这两个调用不返回相同的结果 // 1 $(window).on('load', function(){ spiderLoad(); }); 及 编辑: function spiderload() {} 函数不接受参数,但我使用一些$jQuery从数据,href等获取值。在1中调用spiderLoad时,我怀疑我正在丢失load事件对象引用 谢谢他们有不同的结果,因为他们在做根本不同的事情 $(window).o

我想我错过了javascript事件的一些基础知识

smb能否解释为什么这两个调用不返回相同的结果

// 1
$(window).on('load', function(){
    spiderLoad();
});

编辑:

function spiderload() {} 
函数不接受参数,但我使用一些
$jQuery
数据
href
等获取值。在
1
中调用spiderLoad时,我怀疑我正在丢失load事件对象引用


谢谢

他们有不同的结果,因为他们在做根本不同的事情

$(window).on('load', function(){
    spiderLoad();
});
这将创建一个新的匿名函数,并将其添加为事件处理程序。匿名函数调用
spiderLoad()
,不带任何参数

$(window).on('load', spiderLoad); 
这会像事件处理程序一样直接添加
spiderLoad()
,这意味着它将接收一个作为其第一个参数的


编辑:如果
spiderLoad()
不接受任何参数,那么应该没有区别,除了
this
spiderLoad()

内部的
this
的值之外,它们有不同的结果,因为它们做的事情根本不同

$(window).on('load', function(){
    spiderLoad();
});
这将创建一个新的匿名函数,并将其添加为事件处理程序。匿名函数调用
spiderLoad()
,不带任何参数

$(window).on('load', spiderLoad); 
这会像事件处理程序一样直接添加
spiderLoad()
,这意味着它将接收一个作为其第一个参数的


编辑:如果
spiderLoad()
不接受任何参数,则应该没有区别,除了
spiderLoad()内部的
this
值之外,如果spiderLoad返回值,它们的行为可能会不同

function spiderLoad(){
    return false
}
如果是这样写的话,它们是相同的(假设函数不关心传入的参数)

$(window).on('load', function(){
    return spiderLoad();
});

如果spiderLoad返回一个值,它们的行为将不同

function spiderLoad(){
    return false
}
如果是这样写的话,它们是相同的(假设函数不关心传入的参数)

$(window).on('load', function(){
    return spiderLoad();
});

他们应该还些什么吗?如果是这样的话,那又怎样?他们的行为应该是一致的。请详细说明“不返回相同结果”的含义。第一个函数调用
spiderLoad()
,没有参数,第二个函数调用
spiderLoad()
,带有
load
事件将传递的参数。@Johan-嗯,不是真的,引用函数将传递参数,在本例中是事件,并设置
this
等的值。@Zortkun参数为--handler Type:Function(eventObject[,extraParameter][,…])。同样,在下面的描述中,“当jQuery调用处理程序时,
this
关键字是对传递事件的元素的引用;”它们是否应该返回一些内容?如果是这样的话,那又怎样?他们的行为应该是一致的。请详细说明“不返回相同结果”的含义。第一个函数调用
spiderLoad()
,没有参数,第二个函数调用
spiderLoad()
,带有
load
事件将传递的参数。@Johan-嗯,不是真的,引用函数将传递参数,在本例中是事件,并设置
this
等的值。@Zortkun参数为--handler Type:Function(eventObject[,extraParameter][,…])。同样,在下面的描述中,“当jQuery调用一个处理程序时,
this
关键字是对传递事件的元素的引用”,就是这样。我有一行代码:var href=$(this).attr(“href”)显然失败了。我相信事件处理程序的
this
的值是触发事件的元素,第二行应该是
window
(除非jQuery特殊情况处理程序附加到
window
,可能是这样)。就是这样。我有一行代码:var href=$(this).attr(“href”)显然失败了。我相信事件处理程序的
this
的值是触发事件的元素,第二行应该是
window
(除非jQuery特例处理程序附加到
window
,它可能会)。