var Gadget = function () {
// static variable/property
var counter = 0;
// returning the new implementation
// of the constructor
return function () {
console.log(counter += 1);
};
}(); // execute immediately
var g1 = new Gadget(); // logs 1
var g2 = new Gadget(); // logs 2
var g3 = new Gadget(); // logs 3
このコードをデバッグすると、var counter = 0;
は実行されません。new Gadget()
出力は1,2,3
です。
var Gadget = function () {
// static variable/property
var counter = 0;
// returning the new implementation
// of the constructor
return function () {
console.log(counter += 1);
}();
}; // execute immediately
var g1 = new Gadget(); // logs 1
var g2 = new Gadget(); // logs 2
var g3 = new Gadget(); // logs 3
このコードをデバッグすると、var counter = 0;
が実行されnew Gadget()
、出力はになり1,1,1
ます。
このデモコードはjavascriptパターン、プライベート静的メンバーです。私はこれを理解するのに少し苦労しています。