将参数传递给函数

时间:2011-08-29 12:06:09

标签: javascript function parameters

我是JavaScript新手。我正在学习它,但我不理解“带参数的功能”。为什么功能需要“参数”&我们怎么知道这个函数需要一个“参数”。你能给我一个链接,我可以从中学习基本的所有JavaScript。我想要一个链接,其中提供了所有带有详细信息的小型JavaScript程序。

4 个答案:

答案 0 :(得分:2)

如果函数的输出基于某些输入值,则函数需要参数。例如,如果您要编写一个将两个数字相加的函数:

function adder(a, b) {
    return a + b;
}

我知道这个函数有两个名为ab的参数,因为我可以在函数名称后的定义中看到它:adder(a, b)。我需要将两个数字“传递”给这个函数,以便产生良好的输出,如下所示:

adder(2, 3); // returns 5

如果我没有传递两个数字,返回的结果将是NaN,因为函数的参数将是undefined

adder(); // a = undefined, b = undefined, returns NaN
adder(7); // a = 7, b = undefined, returns NaN

有关学习Javascript的更多信息,有一个地方是MDN guide

答案 1 :(得分:1)

功能不是需要参数。所有功能都由2个必需部分组成:

  • 实施 - 这是该功能的实际代码,它的作用。
  • 界面 - 将其连接到“外部世界”的事物,即程序的其余部分。

参数是界面的一部分,您可以将参数传递给您的函数,以帮助它实现整个程序的目标。


考虑以下(理论)示例:

假设我想制作一个电视操作节目。我想定义一种切换频道的方法。

function switchChannel() { /* do some stuff */ }

然而,你会问自己的第一件事是什么?用户想要更改的渠道是什么? 这是界面问题,所以为了在我们的函数中包含它,我们会做这样的事情:

function switchChannel(channelNum) { /* do some stuff */ }

当我调用该函数时,我很可能会这样做:

switchChannel(24);

该24 将传递到channelNum 函数内的switchChannel() 参数

完整的示例代码:

function switchChannel(channelNum) { alert(channelNum); }
switchChannel(24);

结果将是 24

的警告

这就是它的要点,希望它对你有所帮助:)。

答案 2 :(得分:0)

我建议您查看此页http://www.w3schools.com/js/js_functions.asp

我会在路上添加几句话。

例如,我们想要更改页面的背景颜色

为此我将创建这样的函数

function changeBG(whichColor){
document.bgColor = whichColor;
}

所以,我可以点击按钮(红色按钮)调用该功能 - onclick="changeBG('red');" 相同,我可以使用diff参数调用该方法(例如onclick="changeBG('green');" 我们可以在需要时重用相同的代码。

答案 3 :(得分:0)

这不是javascript特有的。

所有编程语言都有需要参数的功能。

实际上,所有功能都有参数。函数就像你在数学课中学到的那样:给它一个输入值,它给你一个输出值。

具有“无参数”的函数实际上有0个参数。就其性质而言,它只能返回一个值(除非它正在访问外部变量,这是非常差的形式)。

例如:

function sum0() {            // <-- "no" parameters/arguments
    return 0;
}
function sum1(x0) {          // <-- 1 parameters/arguments
    return x0;
}
function sum2(x0, x1) {      // <-- 2 parameters/arguments
    return x0+x1;
}
function sum3(x0, x1, x2) {  // <-- 3 parameters/arguments
    return x0+x1+x2
}

(当然你永远不会写这些函数;它们是可怕的和重复的。我们编写的全部原因都是为了避免重复。要实际实现sum函数,你要么传入一个数组作为一个参数,或做return arguments.reduce(sum2)

没有参数的函数有时称为“thunk”,因为它不需要处理新信息。它“已经深思熟虑”。例如:

function firstNPrimes(n) {    // 1 parameter, not "thought out"
    // sieve of Eratosthanes goes here
}

假设我们现在想要一个函数firstFivePrimes。我们有很多方法可以做到:

function firstFivePrimes() {   // no parameters, already "thought out"
    return firstNPrimes(5);
}

然而,它已经“深思熟虑”,所以我们可以预先计算它,或者在后台计算它:

function firstFivePrimes() {   // no parameters, already "thought out"
    return [2,3,5,7,11];
}

假设您没有访问全局变量(格式不佳),这两个实现是相同的。

这是一个总是返回相同值的“thunk”:一个函数!

function makeCounter() {
    var i = 0;
    return function() {
        console.log(i++);
    }
}

示例:

> counter = makeCounter()
> counter()
0
> counter()
1
> counter()
2
> anotherCounter = makeCounter()
> anotherCounter()
0
> anotherCounter()
1
> counter()
3
> anotherCounter()
2