我是 Javascript 的新手,但对真正的 OO 语言有很深的背景,比如 C#、Java、C++... 在 Javascript 中有一个概念叫做匿名函数。这是一个示例代码:
( function() {
for(var x = 0;x<5;x++) {
console.log(x);
}
})();
据我所知,末尾的括号使函数调用自身。 还有另一种语法做同样的事情:
var x = function() {
for(var x = 0;x<5;x++) {
console.log(x);
}
}();
但现在如果我尝试使用 x
,它不会再次执行该函数。那么,如果在第二个版本中使用赋值,目标是什么?我可以再次通过 x
使用该功能吗?
最佳答案
自执行函数被称为 IIFE(立即调用函数表达式),它通常用于控制作用域,这样您就不会得到很多全局变量。
比如这个函数相当于一个moneybox,它封装了你的“钱”的所有信息,所以你只能插入钱或者得到总的钱,而不能直接调用add/get访问变量。
它也可以用作 OOP 的一种形式,因为您已经非常熟悉它
var myMoneyBox = (function() {
var money = 0;
function addMoney(x) {
if (x > 0)
money += x;
}
function getMoney() {
return money;
}
return {
add: addMoney,
get: getMoney
}
})();
myMoneyBox.add(10);
console.log(myMoneyBox.get());
关于javascript - 关于 Javascript 中的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47132098/