$(document).ready的不同用法

Jon*_*ter -1 javascript jquery

使用$(docu ...)与你在里面定义的变量和函数有什么区别/优点,从使用函数然后在$(docu ...)中调用它

$(document).ready(function (){
    initialize();
});
function initialize(){
    hello
}
Run Code Online (Sandbox Code Playgroud)

过度使用这个:

$(document).ready(function (){
        hello
});
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

这四个选项都会产生完全相同的结果,灵活性下降:

示例#1

$(document).ready(function (){
    initialize();
});

function initialize(){
    hello();
}
Run Code Online (Sandbox Code Playgroud)

例#2

$(document).ready(initialize);

function initialize(){
    hello();
}
Run Code Online (Sandbox Code Playgroud)

例#3

$(document).ready(function (){
        hello();
});
Run Code Online (Sandbox Code Playgroud)

例#4

$(document).ready(hello);
Run Code Online (Sandbox Code Playgroud)

在第一个示例中,您将创建一个将在document.ready时调用的匿名函数.该匿名函数调用一个单独的函数initialize().因为它initialize()是一个单独的函数,所以它也可以被其他代码调用.

在第二个示例中,您只需避免使用匿名函数并initialize直接传递对函数的引用.这比第一个示例稍微快一点(少一个函数调用),但如果你想initialize()document.ready()处理程序调用多个函数,则灵活性会降低.

在第三个例子中,你只需删除外部initialize()函数,然后从匿名函数中调用它所做的一件事.

在第四个示例中,匿名函数再次被删除,您只需传递对该hello函数的直接引用,以便直接调用它而无需任何中间函数.

第一个选项为您提供最大的灵活性,因为您可以调用其中的多个内容initialize(),也可以initialize()从程序中的其他位置调用.如果您不需要这些灵活性,您可以选择其他四个选项中的任何一个,因为它们都会产生相同的结果,每个选项的灵活性都会降低一些.