我是Javascript的新手,但拥有深厚的背景真实OO语言,如C#,Java,C ++ ...... 在Javascript中有一个称为匿名函数的概念。以下是示例代码:
( function() {
for(var x = 0;x<5;x++) {
console.log(x);
}
})();
我已经理解了最后的parantheses使函数调用自己。 还有另一种语法也是如此:
var x = function() {
for(var x = 0;x<5;x++) {
console.log(x);
}
}();
但是现在如果我尝试使用x
,它就不会再次执行该功能。那么在第二个版本中使用赋值的目标是什么?我可以再次通过x
使用此功能吗?
答案 0 :(得分:3)
自执行功能称为IIFE(立即调用函数表达式),它通常用于控制作用域,因此您不会得到很多全局变量。
例如,此功能充当moneybox,它封装了您的&#34; money&#34;的所有信息,因此您只能插入钱或获得总金额,但您无法直接调用add / get并访问变量。
它也可以用作OOP的一种形式,因为你已经非常熟悉它了
SELECT *
FROM table_name
WHERE id IN (SELECT id
FROM table_name
WHERE ...)
AND ...
&#13;
答案 1 :(得分:1)
x
被赋予了您的函数的结果,就像在任何其他表达式x = f()
中一样,您只需在表达式中定义f
。它没有返回值,因此在这种情况下x
的值为undefined
。
如果您想使用x
调用该函数,那么就不要将()
添加到表达式的结尾...
答案 2 :(得分:0)
我认为这可以帮到你:
var x = function() {
for(var x = 0;x<5;x++) {
console.log(x);
}
};
x();