将功能动态分配给onclick时,以下两个之间有什么区别。

1 ...

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


2 ...

button.onclick=funct(this.value);


其中funct是其他功能。

这两个相等吗?

最佳答案

不,毫不奇怪,两个不同的事物并不相同。

button.onclick=funct(this.value);


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

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


在这里,对funct的调用将推迟到调用按钮的onclick处理程序之前。

此处的主要区别在于,在第二种情况下(在我的帖子中,您的第一种情况)是为onclick分配新函数,而在第一种情况下,是为调用funct分配结果。

这也会对thisvalue的值在调用时产生影响。

关于javascript - javascript中funct()和function(){funct()}之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17505666/

10-09 17:34