版本1:
function myF() {
var executed = false;
return function() {
if (!executed) {
executed = true;
document.getElementById("demo").innerHTML = "Ab"
}
};
};
myF();
第2版:
var myF = (function() {
var executed = false;
return function() {
if (!executed) {
executed = true;
document.getElementById("demo").innerHTML = "Ab"
}
};
})();
myF();
为什么v2有效,为什么v1没有?什么是这两者之间的主要区别,当它们被称为?
答案 0 :(得分:3)
版本2返回IIFE的结果,版本1相同但不调用表达式。你可以像myF()()
,
function myF() {
var executed = false;
return function() {
if (!executed) {
executed = true;
document.getElementById("demo").innerHTML = "Ab"
}
};
};
myF()();

<div id="demo">
</div>
&#13;