我收到此错误
TypeError:无法读取属性' sum'未定义的
如何解决?
function calculator(firstNumber) {
var result = firstNumber;
function sum() {
for (let i = 0; i <= arguments.lenght; i++) {
result += arguments[i];
}
return result;
}
function dif() {
for (let i = 0; i <= arguments.lenght; i++) {
result -= arguments[i];
}
return result;
}
}
var myCalculator = calculator(10);
console.log (myCalculator.sum(2, 3));
console.log (myCalculator.dif(1, 2, 5));
我需要得到:
15
2
答案 0 :(得分:1)
您需要length
的{{1}}属性,迭代arguments
并返回带有两个所需函数的对象。
当您将结果作为变量时,它会保留前一计算的值。结果在第一部分< arguments.length
和更晚15
,而不是7
。
2
&#13;
如果您希望始终使用function calculator(firstNumber) {
function sum() {
for (let i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
}
function dif() {
for (let i = 0; i < arguments.length; i++) {
result -= arguments[i];
}
return result;
}
var result = firstNumber;
return { sum: sum, dif: dif };
}
var myCalculator = calculator(10);
console.log(myCalculator.sum(2, 3));
console.log(myCalculator.dif(1, 2, 5));
获得结果,则可以使用firstNumber
初始化结果。
firstNumber
&#13;