无法理解此 JavaScript 构造
Cannot Understand this JavaScript Construct
本文关键字:JavaScript 构造 更新时间:2023-09-26
下面我附上了 Eloquent JavaScript 书第 10 章的摘录。
var dayName = function () {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"
];
return function (number) {
return names[number];
};
}(); //==> '();' this construct right here....
console.log(dayName(3));
我不明白的是为什么这个函数有一个尾随 ();?
它有什么用?我试图找到答案,但我不知道要寻找什么。
谁能解释一下为什么最后添加这个结构?任何帮助都是无价的。
立即调用函数并将返回值分配给变量。
var name = function() {
// Function body
}();
在您的情况下,该函数返回另一个函数。因此,函数dayName
是可以访问names
变量的返回函数。
内部函数是闭包,因此可以访问外部函数变量。
换句话说,函数是
var dayName = function (number) {
return names[number];
};
可以访问私有变量names
.
另请参阅
- JavaScript 中的 (function() { } )() 构造是什么?
- JavaScript 闭包是如何工作的?
相关文章:
- “var”变量,“this”变量和“global”变量 - 在JavaScript构造函数中
- JavaScript 构造函数中的“var”变量会发生什么
- JavaScript - 构造对象的不同方法
- 创建 JavaScript 构造函数时的语法错误
- 是否有任何类似于Appinventor或Scratch的javascript构造块脚本/库
- 为什么可以't JavaScript构造函数创建字符串或数字
- JavaScript-构造函数参数和原型继承
- 在Javascript构造函数中定义属性的正确方式
- JavaScript构造函数参数
- JavaScript构造函数、原型附加方法和'这'
- JavaScript:构造函数与原型
- 通过JavaScript构造函数引入循环依赖关系
- javascript构造函数中的getElementById
- Javascript构造函数创建对象与常规对象
- JavaScript - 构造函数中的继承
- 是否存在替换Javascript构造函数的问题'原型,而不是添加到原型中
- 无法理解此 JavaScript 构造
- Javascript构造函数似乎正在丢失数据
- Javascript“构造函数”属性中的错误 - IE 8
- 创建一个 JavaScript 构造函数,该函数对数组进行子类化