jQuery .ready()函数是否托管所有函数表达式?

时间:2016-06-17 01:58:15

标签: javascript jquery

这是jQuery的伪代码

$(document).ready(function(){
   printHelloworld(); 
});    
var printHelloworld = function(){
   console.log('hello world');
}

在此示例中,控制台将打印hello world。

我的问题是必须在使用前分配函数表达式,但在此示例中,我在分配之前使用了printHelloworld()。我不知道.ready()函数做了什么?它是否有助于提升功能?

1 个答案:

答案 0 :(得分:0)

varprintHelloworld函数声明提升到函数(或脚本)的顶部。在您在$(document).ready()语句之后分配它之前,它尚未初始化,但您传递给ready的匿名函数仍保留对该变量的引用。到执行该函数时,printHelloworld变量已初始化并可用。

请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

  

因为在执行任何代码之前处理变量声明(和一般声明),所以在代码中的任何地方声明变量等同于在顶部声明它。这也意味着变量可以在声明之前使用。