如何在函数中对函数进行编码

How can I code a function within a function?

本文关键字:函数 编码      更新时间:2023-09-26

是否可以在JavaScript的主函数中嵌套函数?我一直在玩一些代码,我无法让我的函数在屏幕上显示任何内容。

function main() {
    var crew;
    var crewMemberWeight = 113;
    var winterWeight = 2.8;
    var winter = false;
    var capacity = 24000;
    var cargo = [1000, 5500, 2000, 3500, 4000, 7000];
    function cargoWeight(cargo) {
        total = 0;
        for(var i = 0; i < cargo.length; i++) {
            total += cargo[i];
        }
        document.write("Cargo weight: " + total);
        return total;
    }
}
main();
function main() {
    var crew;
    var crewMemberWeight = 113;
    var winterWeight = 2.8;
    var winter = false;
    var capacity = 24000;
    var cargo = [1000, 5500, 2000, 3500, 4000, 7000];
    function cargoWeight(cargo) {
        total = 0;
        for(var i = 0; i < cargo.length; i++) {
            total += cargo[i];
        }
        document.write("Cargo weight: " + total);
        return total;
    }
    // you have to call the function and pass in cargo. Not just define it
    cargoWeight(cargo)
}
main();

您只需要在main()中调用这个内部函数。我会做:cargoWeight(货物);最后一个括号之前。

您需要在末尾调用cargoWeight函数。看看你的代码,看起来你想把货物变量传进来。

function main() {
var crew;
var crewMemberWeight = 113;
var winterWeight = 2.8;
var winter = false;
var capacity = 24000;
var cargo = [1000, 5500, 2000, 3500, 4000, 7000];
function cargoWeight(load) {
    total = 0;
    for(var i = 0; i < load.length; i++) {
        total += load[i];
    }
    document.write("Cargo weight: " + total);
    return total;
}
cargoWeight(cargo);
}
main();

可以在javascript中的函数中定义函数。但是,执行此操作时,只能从父函数内部调用嵌套函数。因此,如果您编写另一个单独的函数,您将无法从另一个函数调用cargoWeight()

function main() {
    var crew;
    var crewMemberWeight = 113;
    var winterWeight = 2.8;
    var winter = false;
    var capacity = 24000;
    var cargo = [1000, 5500, 2000, 3500, 4000, 7000];
    function cargoWeight(load) {
        total = 0;
        for(var i = 0; i < load.length; i++) {
            total += load[i];
        }
        document.write("Cargo weight: " + total);
        return total;
    }
}
main();
function other(){
    cargoWeight(400)  // can't call this method here
}

有很多应用程序需要一篇很长的文章来解释,但研究javascript对象和闭包是一个很好的起点,可以了解javascript为什么以及如何以这种方式工作。

首先,您需要调用"cargoWeight(load)",还需要定义将被拉入函数的"load"。

我认为你的意图是把"货物"数组加起来?参见链接小提琴:

www.jsfiddle.net/natLooy6

这对聚会来说已经很晚了,但对于"JavaScript初学者"来说可能很有趣。

function main()
{
    var crew;
    var crewMemberWeight = 113;
    var winterWeight = 2.8;
    var winter = false;
    var capacity = 24000;
    var cargo = [1000, 5500, 2000, 3500, 4000, 7000];
    function cargoWeight(cargoValues) {
        return cargoValues.reduce((a, b) => a + b, 0);
    }
    document.write("Cargo weight: ", cargoWeight(cargo));
}
main();