我正在尝试创建类似于静态语言“静态字段”的东西。基本上:计数器属性应该在每次调用 init 函数时递增,但不管在哪个实例上。这是我用来测试的示例代码(http://jsfiddle.net/HK8BY/2/):
var Widget = {
counter: 0,
init: function () {
this.counter++;
console.log("init called: " + this.counter);
}
};
var t1 = Object.create(Widget);
var t2 = Object.create(Widget);
t1.init(); // should print: init called 1
t2.init(); // should print: init called 2
console.log(t1);
console.log(t2);
目前,当我 console.log 实例时,我看到proto和 instance 都包含 counter 属性。我认为通过这种方法,只有proto才能拥有它。
那么如何将其更改为原型中只有计数器?