繁体   English   中英

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

[英]I want to call javascript function from function, but it don't work

我收到这个错误

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

您需要argumentslength属性,迭代< arguments.length并返回带有两个想要的函数的对象。

当您将结果作为变量时,它将保留先前计算中的值。 结果在第一部分15和后面的7 ,而不是2

 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初始化结果。

 function calculator(firstNumber) { function sum() { var result = firstNumber; for (let i = 0; i < arguments.length; i++) { result += arguments[i]; } return result; } function dif() { var result = firstNumber; for (let i = 0; i < arguments.length; i++) { result -= arguments[i]; } return result; } return { sum: sum, dif: dif }; } var myCalculator = calculator(10); console.log(myCalculator.sum(2, 3)); console.log(myCalculator.dif(1, 2, 5)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM