In call - by - value , the argument expression is evaluated , and the resulting value is bound to the corresponding variable in the function ( frequently by copying the value into a new memory region ) . If the function or procedure is able to assign values to its parameters , only its local copy is assigned — that is , anything passed into a function call is unchanged in the caller ' s scope when the function returns .