将动作分配给onclick时,下列两项之间有什么区别。
1 ...
button.onclick=function(){funct(this.value)};
2 ...
button.onclick=funct(this.value);
其中funct是其他一些功能。
这两个相同吗?
答案 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}}。
这也会对funct
和this
在调用它们时的价值产生影响。
答案 2 :(得分:0)
秒示例调用函数并为onclick
处理程序分配函数的结果(因此函数必须返回函数)
第一个在点击按钮时调用funct。