将所有代码放在“window.onload”中并将函数名称放在“window.onload”中有什么区别?

时间:2015-11-24 08:49:08

标签: javascript

将所有代码放在window.onload = function(){}之间有什么区别?并且只将函数名放在window.onload = function(){};?

将所有代码放入window.onload:

window.onload=function() {
   function(){
       // do something here
   }
};

只将函数名放在window.onload:

function foo() {
   //do something here
}

window.onload=function() {
   foo();
};

有什么区别?或者它们之间有什么区别吗?

4 个答案:

答案 0 :(得分:2)

如果您在window.onload内声明它,则只能在window.onload触发时使用它,而不是之前。如果您需要在加载孔文档之前使用该功能,则不能。否则,如果您在外部编写函数,则只在事件触发时调用它,但您可以在定义后立即使用它。

答案 1 :(得分:1)

非常相似!

在第一种情况下,只有在window.onload被触发时才声明一个函数。

在第二种情况下,您声明了可从window.onload事件

访问的“全局”功能

请参阅此plunker演示:demo

答案 2 :(得分:0)

在第一种情况下,所有代码都集中在一个匿名函数中,这很好,因为你不会污染全局名称空间。

在第二种情况下,您的js中全局可以使用foo,如果您或使用您的js文件的人重新定义foo

,这可能会导致冲突

答案 3 :(得分:0)

First thing , You can't declare function inside function . As you first did ,  
You can write some query inside function.  But if you want use your query again 
and again then you have to declare a function and you will put your query. 
Then you will call that function from other function inside the same page.