【发布时间】:2017-11-06 07:51:07
【问题描述】:
我是 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使用该功能吗?
【问题讨论】:
-
因为你在函数之后有
(),它会立即调用它并分配它的返回值(在你的情况下,未定义)。删除(),如果您想立即调用它,请在下一行拨打电话,例如:x(); -
请注意 JavaScript 不是面向对象的。相反,JS 是面向原型的,总会有让你吃惊的事情。
-
为什么有人反对这个问题?这对初学者来说是个好问题
-
第一个没有
var x =的其实是IIFE stackoverflow.com/questions/8228281/… -
var x 是调用该匿名函数的结果......在这种情况下......是
undefined,因为它没有返回
标签: javascript