Javascript 如何正确使用多个初始化函数?

Javascript 如何正确使用多个初始化函数?,javascript,jquery,Javascript,Jquery,我试图理解使用多个初始化函数背后的概念是否是一种错误的做法。我所说的初始化函数是指以下任一项: $(document).ready(function(){ //... some code here } (function(){ //.... some code here })(); 我一次又一次地看到使用了多个初始化函数,我一直认为这最终是一个糟糕的做法,但我真的错了吗 基于此,是否有人愿意告诉我使用多个初始化函数是好还是坏的做法 编辑:删除了错误使用闭包和封装的不相关示例

我试图理解使用多个初始化函数背后的概念是否是一种错误的做法。我所说的初始化函数是指以下任一项:

$(document).ready(function(){ 
    //... some code here
}

(function(){
    //.... some code here
})();
我一次又一次地看到使用了多个初始化函数,我一直认为这最终是一个糟糕的做法,但我真的错了吗

基于此,是否有人愿意告诉我使用多个初始化函数是好还是坏的做法


编辑:删除了错误使用闭包和封装的不相关示例。

在另一个函数中创建函数会改变函数的范围,就像它会改变变量的范围一样


在另一个函数中定义的函数将无法在函数外部访问,除非它们已附加到可在函数外部访问的对象:

在另一个函数中创建函数会以与更改变量范围相同的方式更改函数的范围


在另一个函数中定义的函数在函数外部是不可访问的,除非它们已附加到可在函数外部访问的对象:

您的怀疑是正确的,因为通常最好在可以的时候组织代码

集中初始化函数使另一个开发人员更容易确定在任何给定时间执行哪些语句。这有助于调试,并且在多个开发人员处理同一代码时变得越来越重要

也许考虑这样做:

$(document).ready(function () {

    function findLionelRichie() {
        console.log('found Lionel Richie');
    }

    function findWhomeverElseNeedsFinding() {
        console.log('found all the others');
    }       

    (function initialize() {
        findLionelRichie();
        findWhomeverElseNeedsFinding();
    })();
});

也就是说,它们总是无法避免的(例如,当从外部库调用函数时)。然而,在你这边,尽量让它有条理

您的怀疑是正确的,因为在可能的情况下组织代码通常是一个好主意

集中初始化函数使另一个开发人员更容易确定在任何给定时间执行哪些语句。这有助于调试,并且在多个开发人员处理同一代码时变得越来越重要

也许考虑这样做:

$(document).ready(function () {

    function findLionelRichie() {
        console.log('found Lionel Richie');
    }

    function findWhomeverElseNeedsFinding() {
        console.log('found all the others');
    }       

    (function initialize() {
        findLionelRichie();
        findWhomeverElseNeedsFinding();
    })();
});


也就是说,它们总是无法避免的(例如,当从外部库调用函数时)。然而,在你这边,尽量让它有条理

除此之外,我不太清楚你在问什么。不清楚“多个初始化函数”是什么意思这不是一个坏习惯,只是没有正确地使用它们。如果希望代码与其他代码隔离,可以将其封装在匿名函数中(何时调用此函数是另一回事)。很明显,如果代码彼此需要,就不应该将它们孤立起来。许多情况下,它们是无法避免的,例如在不同的页面上需要不同的脚本组合。如果这就是你要问的,那么就没有真正的性能问题。谢谢你接受的答案。我建议更新你的问题以消除范围界定错误,因为它(公平或不公平地)会分散读者对你所问实际问题的注意力。“这是一个好问题,如果能清理干净的话,可能会对其他人有好处。@AshwinBalamohan我同意,好主意坏例子除此之外,我不太清楚你在问什么。”。不清楚“多个初始化函数”是什么意思这不是一个坏习惯,只是没有正确地使用它们。如果希望代码与其他代码隔离,可以将其封装在匿名函数中(何时调用此函数是另一回事)。很明显,如果代码彼此需要,就不应该将它们孤立起来。许多情况下,它们是无法避免的,例如在不同的页面上需要不同的脚本组合。如果这就是你要问的,那么就没有真正的性能问题。谢谢你接受的答案。我建议更新你的问题以消除范围界定错误,因为它(公平或不公平地)会分散读者对你所问实际问题的注意力。这是一个很好的问题,如果能够解决它,可能会对其他人有利。@AshwinBalamohan我同意,好主意坏例子这是真的,多亏了闭包的概念,请记住这是一个注定要失败的代码示例,以说明我的观点,使用多个初始化函数是好的还是坏的做法由于闭包的概念是正确的,请记住这是一个注定要失败的代码示例,为了说明我的观点,使用多个初始化函数是好的还是坏的做法在你看来,它简单地归结为代码组织,而不是纯粹消极的编码实践。考虑到我的直觉总是告诉我不要使用上述多个函数,这是非常令人放心的。我想有一个时间和地点可以使用它们,但总的来说,最好不要这样做,对吗?砰的一声。你的直觉是正确的。JavaScript没有强加任何严格的代码结构(不像Java这样的语言),因此最好尽量让它有条理。JavaScript代码也可以异步执行,这使得组织不良的代码成为一场噩梦。我编辑了我的问题以删除示例,如果您认为这样做合适,请随意修改您的问题。。。谢谢!因此,在您看来,它只是归结为代码组织,而不是纯粹的消极编码实践。考虑到我的直觉总是告诉我不要使用上述多个函数,这是非常令人放心的。我想有一个时间和地点可以使用它们,但总的来说,最好不要这样做,对吗?砰的一声。你的直觉是正确的。JavaScript没有强加任何严格的代码结构(不像Java这样的语言),因此最好尽量让它有条理。J