次のコード行があります。
(function f() {});
グループ化の外で f() を参照する方法はありますか?
JavaScript の漏れやすい割り当てのおかげで、(ほぼ) 任意の式の値をいつでも取得できます。
(function f() {}).valueOf() // == function f() {}
(function f() {}).prototype.constructor
Esailja の答えは革新的ですが、的を射ていません。たとえば、次のように関数式を使用している場合、使用し.prototype.constructor
ても意味がありません。
window.addEventListener("DOMContentLoaded", (function f() {}), false);
そのような場合、代わりに関数式を関数宣言にして、式を関数名に置き換えることを好みます。
window.addEventListener("DOMContentLoaded", (f), false);
function f() {}
上記のプログラムは完全に有効です。関数宣言は、プログラムに現れる前に呼び出すことができます。f
これで、「グループ外」を参照できるようになりました。これは一種の不正行為のようなものですが、繰り返しになりますが、これは人々が通常行う方法です (不必要な括弧を除いて)。