你能否在其他函数的相关代码中使用函数变量?

时间:2011-11-23 13:43:18

标签: javascript

在Codecademy [1]的代码练习中,它要求你复制一个变量,我可以很容易地使用:

// Accepts a number x as input and returns its square
function square(x) {
  return x * x;
}

// Accepts a number x as input and returns its cube
function cube(x) {
  return x * x * x;
}

cube(7);

我的问题是立方体功能,为什么当我使用以下代码时出现NaN错误:

function cube(x) {
  return x * square;
}

[1] http://www.codecademy.com/courses/functions_in_javascript/0#!/exercise/1

4 个答案:

答案 0 :(得分:1)

尝试:

你错过了(x)

function cube(x) {
  return x * square(x);
}

答案 1 :(得分:1)

应该是

function cube(x) {
    return x * square(x);
}

x * square将尝试将x乘以导致问题的函数

答案 2 :(得分:1)

在您的代码中,square已解析为函数。要获取返回值,您需要调用函数而不是引用它。

function cube(x) {
  return x * square(x);
}

答案 3 :(得分:1)

当你进行乘法或除法运算时,两个参数都是converted to numbers。函数没有合理的转换,因此它们会转换为NaN。

Number(function(){}) //gives NaN

如果你用NaN乘以任何东西你也会得到NaN

2 * NaN
1 * (function(){}) //also gives NaN since the function is converted to that

解决方案(正如许多提到的那样)乘以x的平方而不是平方函数本身。

x * square(x)