为什么参数不能在函数外部保留其值?

阿基瓦酒吧

以下JS代码的行为异常:

var c = 0;
var a = 0;
myTest(8, 5);

function myTest(a,b) {
    console.log(a);
    a++;
    c++;
    console.log(a);
    return a;
}

console.log(a);
console.log(c);

https://jsfiddle.net/hwns1v4L/

如果我从函数中删除“ a”参数,则“ a”将增加1,并且第三个控制台日志将“ a”返回为1。完全正常。但是,如果我将“ a”保留为myTest函数的参数(如上面的代码中所示),则它将获得8的值,以1到9的增量递增,并且第三个控制台日志将返回零。

这种奇怪行为的解释是什么?如果在另一个线程中对此进行了解释,我感到抱歉。我对于JS来说太新了,无法产生非常好的Google查询或理解高级答案。

gurvinder372

这种奇怪行为的解释是什么?

因为在Javascript中变量是函数范围的。

你从来没有通过a,并bmyTest法。您通过了8和5,因此签名的一部分a又有了新的范围。变成8并且变成5内部bmyTestabmyTest

ab内部的myTest将不会在外部使用,因为它们的范围仅限于myTest。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此分配不能在函数外部工作?

来自分类Dev

为什么Array中的函数不能在“参数”上使用?

来自分类Dev

为什么函数类型的参数不能接受其参数实现原始参数接口的参数?

来自分类Dev

为什么构造函数与方法不同,为什么不保留Java中其参数的名称?

来自分类Dev

为什么@interface中声明的变量中的值不能在XCTest中的方法之间保留?

来自分类Dev

为什么不能在函数参数列表中使用匿名对象作为参数?C ++

来自分类Dev

为什么不能在C ++中将函数求值作为构造函数参数传递?

来自分类Dev

为什么R不能用给定值替换函数参数?

来自分类Dev

为什么不能在包外部使用受保护的构造函数?

来自分类Dev

为什么我不能在Swift中将正确的参数传递给我的静态函数?

来自分类Dev

为什么枚举不能在此向量构造函数中用作参数?

来自分类Dev

为什么不能在node.js(browserify)的require()函数中将变量用作参数?

来自分类Dev

为什么我不能在类中使用参数构造函数?

来自分类Dev

为什么不能在函数中使用模板别名作为参数并自动推导?

来自分类Dev

为什么带有参数的函数不能在迭代器中调用?

来自分类Dev

为什么我不能在settimeout / setinterval中多次调用带有参数的函数

来自分类Dev

为什么我不能在 Python 中使用变量作为参数来调用这个函数?

来自分类Dev

为什么我不能在gcc的初始值设定项中访问默认参数?

来自分类Dev

为什么不能在pChart中将任何变量分配给函数返回值?

来自分类Dev

为什么我不能在Timer.scheduledTimer函数中更改变量的值?

来自分类Dev

为什么不能在组织外部共享Power BI报告?

来自分类Dev

为什么@ViewChild不能在AfterViewInit外部运行?

来自分类Dev

为什么我不能在外部硬盘上写?

来自分类Dev

为什么不能在没有参数的情况下传递声明为需要参数的swift函数?

来自分类Dev

定义函数后,为什么不能更改其默认值?

来自分类Dev

为什么不能在专用参数上使用enable_if?

来自分类Dev

为什么不能在Angular中更改参数名称

来自分类Dev

为什么不能在```getStaticProps```中获取查询参数?

来自分类Dev

为什么我不能在Java中处理参数?

Related 相关文章

  1. 1

    为什么此分配不能在函数外部工作?

  2. 2

    为什么Array中的函数不能在“参数”上使用?

  3. 3

    为什么函数类型的参数不能接受其参数实现原始参数接口的参数?

  4. 4

    为什么构造函数与方法不同,为什么不保留Java中其参数的名称?

  5. 5

    为什么@interface中声明的变量中的值不能在XCTest中的方法之间保留?

  6. 6

    为什么不能在函数参数列表中使用匿名对象作为参数?C ++

  7. 7

    为什么不能在C ++中将函数求值作为构造函数参数传递?

  8. 8

    为什么R不能用给定值替换函数参数?

  9. 9

    为什么不能在包外部使用受保护的构造函数?

  10. 10

    为什么我不能在Swift中将正确的参数传递给我的静态函数?

  11. 11

    为什么枚举不能在此向量构造函数中用作参数?

  12. 12

    为什么不能在node.js(browserify)的require()函数中将变量用作参数?

  13. 13

    为什么我不能在类中使用参数构造函数?

  14. 14

    为什么不能在函数中使用模板别名作为参数并自动推导?

  15. 15

    为什么带有参数的函数不能在迭代器中调用?

  16. 16

    为什么我不能在settimeout / setinterval中多次调用带有参数的函数

  17. 17

    为什么我不能在 Python 中使用变量作为参数来调用这个函数?

  18. 18

    为什么我不能在gcc的初始值设定项中访问默认参数?

  19. 19

    为什么不能在pChart中将任何变量分配给函数返回值?

  20. 20

    为什么我不能在Timer.scheduledTimer函数中更改变量的值?

  21. 21

    为什么不能在组织外部共享Power BI报告?

  22. 22

    为什么@ViewChild不能在AfterViewInit外部运行?

  23. 23

    为什么我不能在外部硬盘上写?

  24. 24

    为什么不能在没有参数的情况下传递声明为需要参数的swift函数?

  25. 25

    定义函数后,为什么不能更改其默认值?

  26. 26

    为什么不能在专用参数上使用enable_if?

  27. 27

    为什么不能在Angular中更改参数名称

  28. 28

    为什么不能在```getStaticProps```中获取查询参数?

  29. 29

    为什么我不能在Java中处理参数?

热门标签

归档