JavaScript中执行上下文和范围中的函数参数

时间:2013-12-21 20:56:03

标签: javascript

在Nicholas C. Zakas的Professional JavaScript for Web Developers的第4章中,作者说函数参数遵循与执行上下文中的任何其他变量相同的访问规则。为此,我测试了以下代码:

function n1(num1, num2) {
   function n2() {
      var num3 = (num1 + num2);
      console.log(num3);
   }
}

我用: n1(1,2)调用了n1()函数。我认为结果将是3,但我得到 undefined

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:4)

n1n2都没有返回任何内容(undefined来自哪里)。此外,永远不会调用n2。如果您想从3获取n1(1, 2),则必须修改如下内容:

function n1(num1, num2) {
   function n2() {
      var num3 = (num1 + num2);
      console.log(num3);
      return num3;
   }
   return n2();
}