Это интересный вопрос, и для полного понимания было бы полезно взглянуть на javascript выражений . По существу, присваивание в javascript выглядит как
variable_name = expression
, когда вы создаете, что variable
expression
оценивается
//so this
number = 3 * 5
//is the same as
number = 15
Functions
можно вызвать с помощью выражения , литерал (например, string
или int
) или имя переменной
// '|' means 'or'
function(expression | literal | variable)
, если передать выражение в функцию function(expression)
, expression
сначала оценивается, а затем передается в функция.
// so
function(3*5)
//is the same as
function(15)
И то же самое относится и к вызовам функций. Если функция вызывается внутри другой функции, она сначала оценивается, и ее результатом является аргумент внешней функции.
Давайте посмотрим на этот пример
function increment(number){
return number + 1
}
n = 1
document.write(increment(n))
Первый document.write
вызывается с параметр increment(n)
и n = 1
//so
increment(n) = increment(1) = 2
//following me? now we can see that
document.write(increment(n))
//is the same as
document.write(2)
//!!
Надеюсь, это поможет!
edit:
, чтобы вернуть его к вашему примеру
function multiNum(x,y){
return x*y
}
var num = multiNum(3,4) // num = 12
//so
document.write(num)
//is the same as
document.write(12)