javascript中funct()和function(){funct()}之间的区别

时间:2013-07-06 18:03:25

标签: javascript

将动作分配给onclick时,下列两项之间有什么区别。

1 ...

button.onclick=function(){funct(this.value)};

2 ...

button.onclick=funct(this.value);

其中funct是其他一些功能。

这两个相同吗?

3 个答案:

答案 0 :(得分:4)

取决于

如果funct(this.value)做某事,并且您希望在点击按钮时发生某些事情,那么您需要#1。

如果funct(this.value) 返回某个功能,并且您希望在单击该按钮时运行那个功能,则需要#2。

答案 1 :(得分:3)

没有。不出所料,两件不同的东西并不相同。

button.onclick=funct(this.value);

此处,立即评估对funct的调用。

button.onclick=function(){funct(this.value)};

此处,对funct的调用将被推迟,直到调用按钮的onclick处理程序。

这里的关键区别在于,在第二种情况下(在我的帖子中,你的第一种情况),你正在为onclick分配一个新函数,但在第一种情况下,你正在分配调用{{{ 1}}。

这也会对functthis在调用它们时的价值产生影响。

答案 2 :(得分:0)

秒示例调用函数并为onclick处理程序分配函数的结果(因此函数必须返回函数)

第一个在点击按钮时调用funct。