两个令人困惑的陈述,哪一个使用,为什么?

时间:2014-04-02 23:30:49

标签: javascript

我对这两个陈述感到困惑。两者都给出了两个不同的结果。为简化起见,我不在此处发布完整代码。关键是我想知道两者之间的区别。说,我想在滚动页面时调用一个函数。使用括号和在此语句中使用括号有什么区别?

window.onscroll=function_Name;

window.onscroll=function_Name();

3 个答案:

答案 0 :(得分:4)

用括号表示:运行函数并返回结果。

没有括号表示:使用函数本身。

所以如果你想将一个函数绑定到" onscroll"事件,你不要求括号。例如,如果您的函数返回" 2",那么

 window.onscroll=function_Name();

相同
window.onscroll="2";

这是没有意义的。

答案 1 :(得分:0)

window.onscroll需要成为一种功能。如果function_Name是一个函数,那么第一个表单将是您通常使用的表单。 function_Name() 执行函数,因此第二件事是合法的唯一方法是function_Name 返回函数作为结果(例如,{ {1}}可能是这种函数返回函数的一个好名字。但如果它返回,例如generateScrollHandler,则5变为window.onscroll,这根本没有意义。

答案 2 :(得分:0)

“window.onscroll()”中使用的括号表示该函数正在由scroll事件调用,没有括号,脚本将不知道它应该运行代码,而不是它将尝试和调用变量,否则它什么都不做。