是否可以在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();
答案 0 :(得分:2)
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();
答案 1 :(得分:0)
你只需要在main()中调用这个内部函数。我愿意:货物重量(货物);在最后一个括号之前。
答案 2 :(得分:0)
您需要在最后调用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();
答案 3 :(得分:0)
可以在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为何以及如何以这种方式工作。
答案 4 :(得分:0)
首先你需要调用'cargoWeight(load)'你还需要定义将被拉入函数的'load'。
我认为您的意图是加载'货物'阵列? 看到联系小提琴:
www.jsfiddle.net/natLuuy6
答案 5 :(得分:-1)
派对已经很晚了,但对于初学者来说可能会很有趣#34;
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();