2013-03-20 49 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

    相关问题