【问题标题】:Counting function计数功能
【发布时间】:2020-08-15 13:23:07
【问题描述】:

我需要有多个计数器,所以我创建了一个函数,问题是我无法将值存储在函数外部的变量中。我以为这很容易,但我在网上找不到任何东西。

myCounter = 2;
function count(counter) {
   counter++;;
}
count(myCounter);

每次调用该函数时,我都会更新 myCounter 中的值,感谢您提供的任何帮助

【问题讨论】:

  • "我需要多个计数器,所以我创建了一个函数" - 您编写了一个递增计数的函数,而不是创建计数器的函数。仍然只有一个柜台。如果需要多个闭包,请使用闭包。还请向我们展示您希望如何使用多个不同计数器的代码。
  • 谢谢大家的cmets,如果问题不清楚,我很抱歉,我使用了一个对象来保存所有计数,所以我可以使用索引作为参数
  • @hev1 在对象内部我存储了多个计数,因此我必须使用对象键作为函数参数
  • 您介意提供一个示例对象吗?
  • const counters = {wt: 1, se: 2}; function count(counterKey) { counters[counterKey]++; } count('wt'); count('se');

标签: javascript function parameters


【解决方案1】:

您可以使用一个闭包函数,该函数返回一个带有 getter 的对象,这样您就可以根据需要初始化尽可能多的单个实例

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


let ct1 = new counter();
console.log('ct1', ct1.count, ct1.count)


let ct2 = new counter();
console.log('ct2', ct2.count, ct2.count, ct2.count)

【讨论】:

    【解决方案2】:

    试试这个。

    var myCounter = 2;
    var myCounter2 = 3;
    
    function count(counter) {
      return ++counter;
    }
    myCounter = count(myCounter);
    myCounter2 = count(myCounter2);
    console.log('myCounter: ' + myCounter);
    console.log('myCounter2: ' + myCounter2);

    【讨论】:

    • 如何扩展到多个计数器?
    • 但是 OP 明确表示他们不能在函数之外使用多个变量
    猜你喜欢
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多