有人可以解释这些功能定义和吊装吗?

大英

有人可以向我解释以下三个示例中发生的情况吗?我的想法是针对第一个示例,bar它没有执行(这只是一个函数声明),所以在foo执行时,输出是undefined对于第二个示例,bar执行,以便返回值3。对于第三个示例,我不知道为什么会产生8。

// 1)
function foo() {
    function bar() {
        return 3;
    }
}
foo(); // undefined

// 2) 
function foo() {
    function bar() {
        return 3;
    }
    return bar();
}
foo(); // 3

// 3)
function foo(){ 
    function bar(){
        return 3;
    }
    return bar();
    function bar() { 
         return 8;
    }
 }
 foo(); // 8
巴尔玛

您对示例1和2是正确的,所以我只介绍示例3。

看起来您在bar()重新定义它之前就在调用它,但是function声明会被特别对待。这些函数都是在首次输入包含范围时定义的,它们没有按顺序执行。如果同一函数有多个声明,则最后一个是有效的。因此,两者之间没有区别:

function bar() {
    // version 1
}
return bar();
function bar() {
    // version 2
}

和:

function bar() {
    // version 2
}
return bar();

这是函数声明不同于将函数表达式分配给变量的方式。如果您改为:

function foo() {
    var bar = function() {
        return 3;
    }
    return bar();
    var bar = function() {
        return 8;
    }
}
foo();

那它会回来的3

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP套接字-有人可以向我解释这些功能吗?

来自分类Dev

有人可以准确解释这些gsub参数吗?

来自分类Dev

有人可以解释这些C代码吗?

来自分类Dev

有人可以解释这些代码行的含义吗?

来自分类Dev

有人可以解释这些特殊变量的含义吗?

来自分类Dev

有人可以在 iptables 中为特定用户和 VPN 解释这些规则吗?

来自分类Dev

有人可以逐步解释此功能的作用吗

来自分类Dev

有人可以解释以下语法及其功能吗?

来自分类Dev

有人可以解释__set和__get的重载吗?

来自分类Dev

有人可以解释 map 和 lambda 的作用吗?

来自分类Dev

有人可以解释吗?

来自分类Dev

有人可以解释WaitForSeconds()吗?

来自分类Dev

有人可以解释输出吗?

来自分类Dev

Go中的多线程。有人可以向我解释这些答案吗?

来自分类Dev

有人可以解释一下这些行代码如何工作吗?

来自分类Dev

使用N时会被sed输出混淆。有人可以解释这些结果吗?

来自分类Dev

有人可以帮忙解释一下此复制功能吗?

来自分类Dev

有人可以向我解释while循环在javascript getCookie()中的功能吗?

来自分类Dev

有人可以解释JavaScript的反跳功能中的“ this”吗?

来自分类Dev

有人可以向我解释回调功能吗?

来自分类Dev

有人可以解释一下这个功能吗?

来自分类Dev

有人可以帮忙解释一下此复制功能吗?

来自分类Dev

有人可以向我解释使用JS / jQuery创建网格的此功能吗?

来自分类Dev

有人可以解释这个简单的C字符比较功能如何工作吗?

来自分类Dev

有人可以解释为什么对阵列进行的这些特定更改可以解决我的错误吗?

来自分类Dev

有人尝试创建自定义工具时可以解释此错误吗?

来自分类Dev

有人可以在这里解释没有重复和排序顺序的情况吗?

来自分类Dev

有人可以向我解释haskell的功能

来自分类Dev

有人可以帮我识别这些芯片吗?

Related 相关文章

  1. 1

    PHP套接字-有人可以向我解释这些功能吗?

  2. 2

    有人可以准确解释这些gsub参数吗?

  3. 3

    有人可以解释这些C代码吗?

  4. 4

    有人可以解释这些代码行的含义吗?

  5. 5

    有人可以解释这些特殊变量的含义吗?

  6. 6

    有人可以在 iptables 中为特定用户和 VPN 解释这些规则吗?

  7. 7

    有人可以逐步解释此功能的作用吗

  8. 8

    有人可以解释以下语法及其功能吗?

  9. 9

    有人可以解释__set和__get的重载吗?

  10. 10

    有人可以解释 map 和 lambda 的作用吗?

  11. 11

    有人可以解释吗?

  12. 12

    有人可以解释WaitForSeconds()吗?

  13. 13

    有人可以解释输出吗?

  14. 14

    Go中的多线程。有人可以向我解释这些答案吗?

  15. 15

    有人可以解释一下这些行代码如何工作吗?

  16. 16

    使用N时会被sed输出混淆。有人可以解释这些结果吗?

  17. 17

    有人可以帮忙解释一下此复制功能吗?

  18. 18

    有人可以向我解释while循环在javascript getCookie()中的功能吗?

  19. 19

    有人可以解释JavaScript的反跳功能中的“ this”吗?

  20. 20

    有人可以向我解释回调功能吗?

  21. 21

    有人可以解释一下这个功能吗?

  22. 22

    有人可以帮忙解释一下此复制功能吗?

  23. 23

    有人可以向我解释使用JS / jQuery创建网格的此功能吗?

  24. 24

    有人可以解释这个简单的C字符比较功能如何工作吗?

  25. 25

    有人可以解释为什么对阵列进行的这些特定更改可以解决我的错误吗?

  26. 26

    有人尝试创建自定义工具时可以解释此错误吗?

  27. 27

    有人可以在这里解释没有重复和排序顺序的情况吗?

  28. 28

    有人可以向我解释haskell的功能

  29. 29

    有人可以帮我识别这些芯片吗?

热门标签

归档