我不明白为什么会这样:
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如何作为参数//第2行传递(a * 2)//因为当声明doSomethingElse时它只需要一个参数? 到底发生了什么事?有人可以解释整个事情的运行顺序吗?
谢谢!
答案 0 :(得分:2)
a * 2
只是一个论点。无论a
的值是多少,乘以2。
这与此相同:
function doSomething(a) {
var c = a * 2;
b = a + doSomethingElse( c );
console.log( b * 3 );
}
参数以逗号分隔(在ES5中)。但是,您可以将表达式作为单个参数传递,因为它们会产生一个值。