我不明白为什么会这样:
function doSomething(a) {
b = a + doSomethingElse( a * 2 );
console.log( b * 3 );
}
function doSomethingElse(a) {
return a - 1;
}
var b;
doSomething( 2 ); // 15
doSomething fn 中的 doSomethingElse 为何可以将 (a * 2) 作为参数传递//第 2 行//,因为在声明 doSomethingElse 时它只需要一个参数? 这到底是怎么回事?有人能解释一下整个事情的运行顺序吗?
谢谢!
最佳答案
a * 2
只是一个参数。它是 a
的值乘以 2。
这与这样做是一样的:
function doSomething(a) {
var c = a * 2;
b = a + doSomethingElse( c );
console.log( b * 3 );
}
参数之间用逗号分隔(在 ES5 中)。但是,您可以将表达式作为单个参数传递,因为它们会产生一个值。
关于Javascript fn 在调用时有 2 个参数,但在声明时只有 1 个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406443/