<script>
window.something = (function(){
return function(x){
console.log(x);
};
})();
something("hello");
</script>
パラメータがないsomething関数内の関数に "hello"パラメータが渡されているのは不思議です。また、何か関数がすぐに実行されないのはなぜですか?その自己起動関数ですが、実行する前にまず呼び出さなければならないというのは不思議です。関数Aを呼び出すと、関数Aの内部で関数Bにパラメータが渡されるのはなぜですか?
[JavaScriptのクロージャはどのように機能するのですか?](https://stackoverflow.com/questions/111102/how-do-javascript-closures-work) – Andreas
パラメータのない関数は「何か関数」ではありません。 。 *何かになる 'function(x){...} 'を返すのはIIFEです。 – Bergi