javascript - JavaScript:使用公共方法和私有方法的数组的总和
问题描述
我正在尝试使用将传递数组的公共方法和将执行加法的私有方法来添加数组的数字。公共方法将使用私有方法进行计算。
以下是我尝试过的
这段代码进行了添加,但我将相同的数组传递了两次,即publicMethod
,privateMethod
它看起来是多余的。
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 中的闭包。您不需要将数组传递给私有方法。它已经可以在私有方法中访问。
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);
推荐阅读
- java - CSS定位器选择反应的问题
- makefile - Gnu Make, phony prerequisites
- excel - Unable to get the FindNext property of the Range class
- c# - How to create a 'global' variable to return linq result?
- r - 由于存在 \ 符号,导入 .csv 文件时出现问题
- javascript - 仅当具有特定 ID 的对象不存在时才插入数组
- javascript - React 无法识别 DOM 元素上的 `getJson` 属性
- javascript - jquery在laravel中可嵌套返回json
- python - Django中的关系字段
- sql-server - 将 SQL Server 版本获取到 bash 脚本中的变量