将功能动态分配给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
分配结果。这也会对
this
和value
的值在调用时产生影响。关于javascript - javascript中funct()和function(){funct()}之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17505666/