我想从函数中调用javascript函数,但它不起作用

时间:2016-12-10 17:44:50

标签: javascript

我收到此错误

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

1 个答案:

答案 0 :(得分:1)

您需要length的{​​{1}}属性,迭代arguments并返回带有两个所需函数的对象。

当您将结果作为变量时,它会保留前一计算的值。结果在第一部分< arguments.length和更晚15,而不是7

&#13;
&#13;
2
&#13;
&#13;
&#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初始化结果。

&#13;
&#13;
firstNumber
&#13;
&#13;
&#13;