方法 1:
通常の作業コード
var foo1 = function() {
var t1 = new Date();
console.log("initialise - one time only "+this);
foo1 = function() {
console.log("Executes everytime after initialising(initialise should not execute again) "+this);
return t1;
};
return foo1();
};
実行中: foo1();
出力:
初めて
初期化 - 1 回のみ [オブジェクト ウィンドウ]
初期化後に毎回実行する(初期化は再実行しない) [オブジェクトウィンドウ]
隔週
初期化後に毎回実行する(初期化は再実行しない) [オブジェクトウィンドウ]
方法 2
私はjavascriptのモジュールで同じことをしようとしています
var tt=(function(){
var foo = function() {
var that=this;
var t = new Date();
console.log("initialise - one time only" + this);
foo = function() {
console.log("Executes everytime after initialising(initialise should not execute again) "+this);
return t;
};
return foo();
}
return {
foo:foo
};
})();
実行: tt.foo();
出力:
初めて
初期化 - 1 回のみ [オブジェクト オブジェクト]
初期化後に毎回実行する(初期化は再実行しない) [オブジェクトウィンドウ]
隔週
初期化 - 1 回のみ [オブジェクト オブジェクト]
初期化後に毎回実行する(初期化は再実行しない) [オブジェクトウィンドウ]
方法 2 で foo1 が再度初期化されるのはなぜですか?
方法 2 のモジュール パターン内でこの変更の範囲がウィンドウに変更されるのはなぜですか?
方法 2 を方法 1 のように機能させる方法は?
方法 2 の何が問題なのか、概念的な説明をお願いします。前もって感謝します。