この関数は一度だけ実行されるはずです。しかし、私はなぜ呼び出されるたびに、実行される変数がfalseに戻らないのか理解していません。この機能はなぜ機能しますか?関数が呼び出されるたびに、 "実行"しないとfalseに戻りますか?
var onlyOnce = function() {
var executed = false;
return function() {
if (executed == false) {
executed = true;
console.log("Code reached");
}
};
}();
onlyOnce();
onlyOnce();
回だけこのコード印刷。なぜこれは機能しますか?
javascriptでは、変数には括弧内のスコープがあります。ある意味では、 "実行された"とは、返された関数に対してグローバルであると考えて、変更したときにその値を保持します。それは変だけど、ちょっと、これはjavascript – Makketronix
クロージャについて読む... http://stackoverflow.com/questions/111102/how-do-javascript-closures-work –