4

我最近观看了一个 JavaScript 视频教程,其中包含与此类似的代码:

(function (){
    var b = 10,
        c = 20, 
        d = 50;

    var e = function(){
        return b + c + d;
    };
    return e();
}());

这是一种常见的 JS 编码模式。作者说这是Javascript代码中程序化方法的一个例子。没看懂,能不能解释一下

4

1 回答 1

7

让我们首先说上面是一个自调用匿名函数:

自调用匿名函数在您创建时自动/立即运行并且没有名称,因此称为匿名函数。

在我看来,上面是一个相当糟糕的例子,但请考虑以下更改:

var f = (function (){
    var b = 10,
        c = 20, 
        d = 50;

    var e = function(){
        return b + c + d;
    };
    return e();
}());

​console.log(f);​ 

我们采用了上面的代码并var f =在函数前面添加了一个。这将返回e()内部函数f的值 to ,现在您有了一个f要在其他地方使用的值。由于变量b, c, d,是在匿名函数的函数范围内e声明的,我们可以确保它们不会被篡改。这是一种在 JavaScript 中处理私有变量的方法。现在说你的代码中有可能的地方。您可以在开始时运行此匿名函数并将这些事件替换为. 这种将代码抽象为各种过程的想法就是为什么它被称为过程编程10 + 20 + 50f

过程式编程使用结构化的方法对程序进行编码,其中程序的功能被分解为多个函数或子例程,以使其更易于遵循并减少重复代码的需要。

这主要用于使代码更易于阅读、更易于遵循/调试,并使您可以将常用的代码块抽象为编写良好的代码片段。 


阅读更多


自调用函数

自调用函数的目的

程序化编程

更多程序化编程

这会让你进入闭包

于 2012-11-02T14:04:01.800 回答