我最近观看了一个JavaScript视频教程,其中包含与此类似的代码:
(function (){
var b = 10,
c = 20,
d = 50;
var e = function(){
return b + c + d;
};
return e();
}());
这是一种常见的JS编码模式。 作者说这是Javascript代码中程序方法的一个例子。我不明白,你能解释一下。
答案 0 :(得分:6)
让我们首先说上面是一个自我调用的匿名函数:
自动调用匿名函数会立即自动/立即运行 创建它并且没有名字,因此被称为匿名。
在我看来,上面是一个相当糟糕的例子,但请考虑以下变化:
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
,现在您有一个值f
可以在别处使用。由于变量b
,c
,d
,e
在匿名函数的函数范围中声明,我们可以确保它们将不被篡改。这是一种在JavaScript中执行私有变量的方法。现在说你的代码中有10 + 20 + 50
个位置。您可以在开头运行此匿名函数,并用f
替换这些事件。这种将代码抽象到各种程序中的想法就是为什么它被称为程序编程。
程序编程使用结构化方法对数据进行编码 程序,其中程序的功能被分解为 函数数量或子程序,使其更容易遵循和 减少重复代码的需要。
这主要用于使代码更易于阅读,更易于遵循/调试,并允许您将常用的代码块抽象为编写良好的代码片段。
<强> Self-Invoking Functions 强>
<强> Purpose of Self-Invoking Functions 强>
<强> Procedural Programming 强>
<强> More Procedural Programming 强>
这会让您进入 Closures