2013-03-20 57 views
2

是否有之間的差: JavaScript!在window.onload = someFunction和在window.onload = someFunction()

  • window.onload = someFunction();

  • 在端部中的括號

    1. window.onload = someFunction;

      。他們有什麼區別嗎?

      我們一般使用第一個!如果我們必須將某些參數傳遞給函數,該怎麼辦?我們將如何使用第一條語句來做到這一點?

    +1

    如果你要傳遞一個參數,你必須做'的window.onload =函數(){someFunction(someParameter); };'。 – 2013-03-20 14:37:52

    +0

    你想傳遞給這個函數的參數是什麼? – sp00m 2013-03-20 14:38:00

    +0

    不完全是這個功能。我想傳遞一些參數到document.getElementNyId(「something」)。onclick = someFunction(在這裏我想傳遞一些東西)! – 2013-03-20 14:39:43

    回答

    7

    另有解釋,第一種形式

    window.onload = someFunction 
    

    只需設置「的onload」變量是等於「someFunction」功能;當頁面加載完成時,這個函數被調用。

    另一種形式:

    window.onload = someFunction() 
    

    設置 「的onload」 變量是調用someFunction的結果。除非「someFunction」本身返回一個函數,否則這可能不是你想要做的。

    默認情況下,使用單個「event」參數調用onload函數。如果你想傳遞參數,你也許能夠做這樣的事情:

    window.onload = function (event) { 
        someFunction(someArg, someOtherArg) 
    } 
    
    +0

    很好解釋!謝謝 :) – 2013-03-20 14:44:29

    2

    window.onload = someFunction;將函數賦值給onload

    window.onload = someFunction();調用函數並將其返回值分配給onload。 (除非該函數的返回值是另一個函數,否則這是不可取的)。

    如果我們有一些參數傳遞到

    通常你定義一個新的功能,什麼也不做只是調用了一些參數的原函數的功能,那麼您指定的新功能,事件處理程序。

    +0

    那就是我正在尋找的!謝謝。 – 2013-03-20 14:43:06

    +0

    很好地解釋,謝謝,以前的解釋逃脫了我的理解。 – Tyler 2017-07-17 15:02:01

    1

    如果使用

    window.onload = someFunction; 
    

    與someFunction名的函數調用上的window.onload

    如果使用

    window.onload = someFunction(); 
    

    someFunction()運行和結果分配到window.onload

    0

    是的。如果你把window.onload = someFunction()預計someFunction()的結果是另一個功能。這可以用於包裝函數或傳遞參數。例如:

    window.onload = myFunction(arg1, arg2) 
    

    myFunction(arg1, arg2)將被期望返回包含這兩個變量的一些函數。

    2

    您的第二個聲明將結果someFunction()指定爲window.onload

    如果要添加參數,你可以做到以下幾點:

    window.onload = function() { 
        someFunction(parameter); 
    }; 
    
    +0

    感謝您的簡單示例。 – Tyler 2017-07-17 15:06:28