Difference between calling function and referencing function?
看下面的代码:
1 | window.onload = someFunction; |
很多时候我看到使用这种代码,甚至我使用相同的代码。 但是,仍有一些事情尚不清楚。
你没有调用这个函数,你告诉浏览器调用哪个函数,onload。
引用函数和调用函数永远不可互换:它们是完全不同的东西。
但是,您可以调用一个返回函数的函数:
1 2 3 4 5 6 7 | function getFunction() { return function() { alert("I'm the real onload function."); }; } window.onload = getFunction(); |
在这种情况下,您正在为窗口
在JavaScript中,括号很重要。在您的情况下,您将函数对象本身分配给某个
- 当您看到没有括号的函数时,您将面对一个具有函数对象本身值的表达式
- 当你看到带括号的函数时,表达式的值是函数的返回值,因为括号表示调用了函数
一个特殊情况是