Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
108 views
in Technique[技术] by (71.8m points)

javascript - Difference between calling function and referencing function?

Look at the following code:

window.onload = someFunction;

Many times I see the use of this kind of code and even I use the same. But, there are still few things unclear.

  1. The above is a call to someFunction as soon as the page loads, right. But, aren't we supposed to call a function with brackets ()?
  2. From my understanding, we are just assigning someFunction to window.onload, therefore can we or shouldn't we call window.onload();
  3. Are there such cases, when functionName() and functionName becames interchangeable. Because at many places, and in various API, I have seen calling the function without brackets.
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You're not calling the function, you're telling the browser which function to call, onload.

Referencing a function and calling a function are never interchangeable: they're completely different things.

You may, however, call a function that returns a function:

function getFunction() {
    return function() {
        alert("I'm the real onload function.");
    };
}

window.onload = getFunction();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...