私は次のコードを持っています。これはJavaScriptモジュールです。Javascriptモジュール
(function() {
// Object
var Cahootsy;
Cahootsy = {
hello: function() {
alert('test');
},
};
(Cahootsy.scope = (function() {
return this;
})()).Cahootsy = Cahootsy;
return Cahootsy;
}).call(this);
私はセクションを理解していない:
(Cahootsy.scope = (function() {
return this;
})()).Cahootsy = Cahootsy;
私はそれがこの「モジュールを参照するオブジェクトを作成し、グローバルCahootsy変数にCahootsy変数を割り当てていると思います。私が理解できないのは、なぜthisがCahootsyに割り当てられる必要があるのかということです。スコープ
なぜモジュールはグローバルスコープへの参照を保持していますか?また、単に 'Cahootsy.scope = window'をしないのはなぜですか? –
私が言及したように、 'window'は必ずしもグローバルスコープではありません。例えば、JavaScriptがNode.JS上で実行されている場合、ブラウザは存在しないため、 'window'もありません。 –
これは、グローバルスコープを取得するためのハックな方法のように見えます! :) –