首先,我是初学者,所以如果我说的是愚蠢的话,不要生气。
所以,这是使用参数的代码:
function simpleExample (x) {
document.write ("I love " + x);
}
simpleExample ("my mom.");
这是不使用参数的代码:
function simpleExample () {
var x = ("my mom");// Does not use the parameters
document.write ("I love " + x);
}
simpleExample ();
所以,结果是一样的......全局和局部的东西也是一样的[两者都是本地的吗?]那么区别是什么?
对不起,如果这是一个愚蠢的问题。
答案 0 :(得分:4)
如果你只想说你爱你的妈妈,你可能是对的。但是,如果你还想说出你喜欢的其他人怎么办?你每次都写下所有硬代码吗?
答案是:不。
您只需使用参数调用该函数。就是这样。没什么。
simpleExample("my mom");
simpleExample("my dad");
simpleExample("justin bieber"); //we all hope you don't.
答案 1 :(得分:0)
如果我们可以使用变量,为什么要使用参数?
关键是我们经常不能使用静态(全局)或常量变量。考虑你的第一个功能:
simpleExample("my mom.");
simpleExample("my dad.");
我们使用不同的参数多次调用相同的函数。这需要函数中代码的参数化,否则对于所有情况都是相同的。
答案 2 :(得分:0)
使用函数的参数允许函数的结果(无论是过程还是结果值)根据编写函数时未修复的输入而不同。
即使您的简单示例,显而易见的是,带参数的simpleExample(x)
函数可以像这样轻松地重复使用:
simpleExample('my mom');
simpleExample('and my dad too!');
simpleExample('my sister not so much');
使用变量方法并不容易。
答案 3 :(得分:0)
使用参数是函数的本质。
在第二种情况下,变量x对于函数的范围是局部的,并且永远不会改变。也就是说,执行函数x
将始终具有相同的效果(记录"我爱我的妈妈"在控制台中)。
参数的使用允许您的函数具有依赖于输入的效果。在这种情况下,您喜欢的人可以根据参数if(ioctl(fd, IOC_CARD_LOCK, &lock) < 0)
{
int errsv = errno;
printf("ioctl failed and returned errno %s \n",strerror(errsv));
}
进行更改。
答案 4 :(得分:0)
function simpleExample (x) {
document.write ("I love " + x);
}
simpleExample ("my mom.");
simpleExample("my father.");
simpleExample("my sister.");
simpleExample("my brother.");
功能的主要目的是对代码行进行分组并重用它。 如果我们使用参数,我们可以使用相同的代码行生成变量输出。