首页 > 解决方案 > JavaScript:使用公共方法和私有方法的数组的总和

问题描述

我正在尝试使用将传递数组的公共方法和将执行加法的私有方法来添加数组的数字。公共方法将使用私有方法进行计算。

以下是我尝试过的

这段代码进行了添加,但我将相同的数组传递了两次,即publicMethodprivateMethod它看起来是多余的。

let arr = [1, 2, 3, 4, 5, 6, 7];

function publicMethod(arr) {
  //console.log(arr);
  var total = 0;

  function privateMethod(...numbers) {
    console.log('inner');
    for (const number of numbers) {
      console.log('num', number);
      total += number;
      console.log('total', total);
    }
    return total;
  }
  return privateMethod(...arr);
}
// console.log(arr);
console.log(publicMethod(arr));
console.dir(publicMethod);

标签: javascript

解决方案


阅读 JavaScript 中的闭包。您不需要将数组传递给私有方法。它已经可以在私有方法中访问。

let arr = [1, 2, 3, 4, 5, 6, 7];

function publicMethod(arr) {
  //console.log(arr);
  var total = 0;

  function privateMethod() {
    console.log('inner ', arr);
    for (const number of arr) {
      console.log('num', number);
      total += number;
      console.log('total', total);
    }
    return total;
  }
  return privateMethod();
}
// console.log(arr);
console.log(publicMethod(arr));
console.dir(publicMethod);


推荐阅读