Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想知道还有别的办法吗??Javascript_Javascript_Function - Fatal编程技术网

我想知道还有别的办法吗??Javascript

我想知道还有别的办法吗??Javascript,javascript,function,Javascript,Function,我在寻找另一种方法来代替这句话。 (counter.set=(value)=>count=value;counter.decrease=()=.count--) 我该怎么做 function makeCounter() { let count = 0; function counter() { return count++ } // Issue -- counter.set = (value) =>

我在寻找另一种方法来代替这句话。 (counter.set=(value)=>count=value;counter.decrease=()=.count--) 我该怎么做

   function makeCounter() {
      let count = 0;
    
      function counter() {
        return count++
      }

      // Issue --
      counter.set = (value) => count = value;
      counter.decrease = () => count--;
      // End of issue --

      return counter;
    }
    
    let counter = makeCounter();
    
    alert( counter() ); // 0
    alert( counter() ); // 1
    
    counter.set(10); // set the new count
    
    alert( counter() ); // 10
    
    counter.decrease(); // decrease the count by 1
    
    alert( counter() ); // 10 (instead of 11)
你可以去上课

类计数器{
构造函数(){
此值为0.count;
}
设置(值){
this.count=值;
}
增加(价值){
此值为.count+=(值| | 1);
}
减少(价值){
this.count-=(值| | 1);
}
}
常量计数器=新计数器();
控制台日志(计数器计数);
计数器增加();
控制台日志(计数器计数);
计数器增加();
控制台日志(计数器计数);
计数器。增加(10);
控制台日志(计数器计数);
计数器。减少();
控制台日志(计数器计数);
计数器。减少(2);

控制台日志(计数器计数)您需要使用新关键字来更改它。。。也可以使用类

 class makeCounter  {
    constructor(){
       this.count = 0;
    }
      
      function counter() {
        return count++
      }

      set(value){ this.count = value;}
     decrease(){this.count-- ;}

      
    }
    
    let counter =new makeCounter();
    
    alert( counter() ); // 0
    alert( counter() ); // 1
    
    counter.set(10); // set the new count
    
    alert( counter() ); // 10
    
    counter.decrease(); // decrease the count by 1
    
    alert( counter() ); // 10 (instead of 11)

很清楚,有什么问题吗?欢迎来到StackOverflow。如果代码是功能性的,那么这主要是基于观点的,因此脱离主题。对于这种类型的问题,有一个名为“代码审查”的StackExchange站点。投票关闭此功能。通常,这将使用带有原型的类或对象来完成,而不是向函数添加属性。