私は数週間フレームワーク開発を研究してきましたが、lib開発の世界で強く提案され、プレッシャーをかけられているもの、つまり無名関数をすぐに呼び出すものに出くわしました。
私はそれを機能させることができず、その背後にある使用法とロジックを詳細に説明するリソースを見つけることができませんでした。
これが私がこれまでに知っていることです:
- それはすぐに呼び出します-それはすべてを匿名で、すぐに実行します。
- 匿名です-名前が付いていないため、内部のコードは外部コードから「到達可能」ではありません。
- グローバルウィンドウ、オブジェクト、および未定義のパラメーターを渡すことができます-それについて私が知っていることはこれだけですが、それらを完全には理解していません。
詳細なリソースだけでなく、その背後にあるロジックを説明するリソースも探しています。私はそれが非常に非論理的だと思うからです。
これが私が持っているものです:
(function( window, document, undefined ) {
window.myThingy = myThingy;
var myThingy = function() {
};
myThingy.prototype = {
constructor: myThingy,
create: function( elementToBeCreated ) {
return document.createElement( elementToBeCreated );
}
};
})( window, document );
それで、
myThingy().create("div");
しかし、それはまだmyThingy() [object]
機能ではないと言っています。
私は何が間違っているのですか?myThingy = function()
グローバルオブジェクトを作成するだけでなく、すぐに呼び出す関数を使用する必要があるのはなぜですか?なぜ使用する必要があるのwindow
ですか?
これについてはネット上にいくつかのリソースがあることは知っていますが、どれも理解できません。それらのいくつかは詳細に中途半端になり、いくつかは詳細にしようとしますが、重要なことを説明できません。フレームワークを開発するときに、なぜこれがそれほど強調されるのですか?
心配しないでください。私は「車輪の再発明」を試みているのではありませんが、あらかじめパッケージ化されているものだけでなく、実際にJavaScriptを学習しようとしています。
良い答えには次のものが含まれている必要があります。
- 匿名関数をすぐに呼び出す背後にあるロジックを説明する優れたリソース
- そのリンクへの洞察
- 私が提供したコードで間違っていること