-1

将 $(docu...) 与内部定义的变量和函数一起使用,将其与函数一起使用,然后在 $(docu...) 中调用它,有什么区别/优势?

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

过度使用这个:

$(document).ready(function (){
        hello
});
4

2 回答 2

5

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

示例 #1

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

function initialize(){
    hello();
}

示例 #2

$(document).ready(initialize);

function initialize(){
    hello();
}

示例#3

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

示例 #4

$(document).ready(hello);

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

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

在第三个示例中,您只需删除外部initialize()函数并调用它内部的一件事,它正在从匿名函数中执行。

在第四个示例中,匿名函数再次被删除,您只需传递对该hello函数的直接引用,因此它将被直接调用而没有任何干预函数。

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

于 2012-04-16T22:49:02.263 回答
4

在您的第一个示例中,您可以initialize稍后再次使用该功能。如果将hello代码直接放在$(document).ready()'s 函数中,则以后无法再次引用该代码。

于 2012-04-16T22:35:35.790 回答