Javascript JS闭包:返回对象内的私有作用域增量计数器值
我试图构建一个Javascript JS闭包:返回对象内的私有作用域增量计数器值,javascript,Javascript,我试图构建一个计数器增量方法,该方法可以被其他方法重用,并在每次调用该方法时返回计数器变量 var myClass = { //counter method "counter": (function(text){ var counter = 0; return function(text) { counter++ console.log(text+counter); } })
计数器增量
方法,该方法可以被其他方法重用,并在每次调用该方法时返回计数器
变量
var myClass = {
//counter method
"counter": (function(text){
var counter = 0;
return function(text) {
counter++
console.log(text+counter);
}
})(), //how do you return this function without resetting the counter every time it is called?
//every time this method is called the counter increases
"myMethod": function(text) {
myClass.counter(text);
}
}
myClass.myMethod('the counter is at '); //the counter is at 1, 2, 3, etc.
本质上,我试图构建的是一个可重用的计数器
方法,它将实例化新的计数器值,并彼此独立地递增
var myClass = {
"counter": (function(text){
var counter = 0;
var this.text = text;
return function(this.text) {
counter++
console.log(this.text+counter);
}
})(),
"firstMethod": function(text) {
myClass.counter(text);
//do something that uses the counter
},
"secondMethod": function(text) {
myClass.counter(text);
//do something completely different that instantiates new private counter
}
}
你说你想要新的柜台。在什么意义上?也许这个计数器更合适?方法调用私有计数器值(整数);每次调用该方法时,计数器整数都会增加,并且该值独立于调用同一函数的其他方法实例化的其他this.counter值。