JavaScript をかなりよく理解し始めたと思っていましたが、明らかにそうではありませんでした。私の問題を例で説明しましょう。まず、次のモジュールを定義します。
var Test = function() {
var counter = 0;
function init() {
alert(counter);
}
return {
counter: counter,
init: init
}
};
次に、2 つのインスタンスを作成します。
var test1 = new Test();
var test2 = new Test();
ここで、カウンター変数を (公開されているため) 更新し、いくつかのアラートを実行します。ここまでは順調ですね。
alert(test1.counter); // Alerts 0
test1.counter = 5;
alert(test2.counter); // Alerts 0
test2.counter = 10;
alert(test1.counter); // Alerts 5
では、最後に次のように言います。
test1.init(); // Alerts 0
test2.init(); // Alerts 0
これは私が理解していないビットです。このアラートが 0 になるのはなぜですか? 最初のアラートは 5 で、2 番目のアラートは 10 だと思っていました。
誰かが上記がどのように機能するかを説明したり、正しい方向に向けたりしていただければ幸いです。ありがとう