如何保存返回值?

时间:2013-03-10 20:17:56

标签: javascript function return

方法/函数的调用语句是否保持其返回值类似于变量名称如何保存值?

例如:

function Jump(height) {
    return height * 2;
}
Jump(3);       //Is the call statement 'Jump(3)' equal the return value of 6 similar to

var x = 3;  //how the variable 'x' is equal to the value of 3?

编辑:我通过命名变量并使用相同的名称给出了错误的印象。在理解如何保存返回值时,我纯粹使用变量作为比较。我下次会更好地说出/构建我的问题。

2 个答案:

答案 0 :(得分:6)

函数和变量共享相同的命名空间。你定义了函数Jump,然后调用它(但实际上没有分配函数的结果(返回的内容)),所以它返回6但是你实际上并没有将它存储在任何地方。然后通过将其重新定义为具有相同名称的变量来覆盖您的函数,并将其赋值为3

答案 1 :(得分:0)

关于表达式

在您进行修改后,您似乎在询问expressions

expression基本上是一个value的代码段。在您的示例中,Jump(3)var x = 3都是表达式,因为它们都有值。换句话说,Jump(3)是一个值为6的表达式,(x=3)实际上是一个计算结果为3的表达式。

两者之间的唯一区别是第一个表达式还为assignment operator分配值(即=),而第二个表达式“只是”一个值。就此而言,在您的示例中,变量x也是一个计算结果为3的表达式。

有关此主题的更多信息,请参阅MDN - Expressions and operators in Javascript

更多要点

这意味着当您将参数传递给函数by-value时,您实际上是传递了表达式的值。因此,在您的示例中,Jump(x)Jump(3)Jump((x=3))Jump(Jump(1.5))都将评估为6

当然,将常用操作的值存储在一个快速计算为表达式的变量中,而不是每次计算表达式时都要完成计算,这样做成本要低得多。