javascript - 为什么当我用 JavaScript 覆盖第一个函数时它不起作用

标签 javascript

<html>
    <head>
    </head>
    <body>
        <script>
            function wow(){
               alert(1);
            }
            wow();

            function wow(){
                alert(2);
            }
            wow();
        </script>
    </body>
</html>

这是我的代码,我希望它会警报 1 和 2,但相反,它警报 2,然后再次警报 2,为什么???

最佳答案

函数声明被提升。将它们放在哪里并不重要*:它们会先于其他任何事情进行处理。

另一方面,函数表达式不会被提升。

var wow;
wow = function (){ alert(1); };
wow();
wow = function (){ alert(2); };
wow();

* 在它们出现的范围(父函数或全局)内。

关于javascript - 为什么当我用 JavaScript 覆盖第一个函数时它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951527/

相关文章:

javascript - 有没有办法将常量导入 Gruntfile.js 文件?

javascript - 如何区分 AngularJS 中注入(inject)模块的命名空间?

javascript - jquery-ui Accordion : adding rows without destroying and recreating?

javascript Object.each 不是一个函数

javascript - 如何将 iframe vimeo 静音

javascript/Angular : add 'line break' via string

javascript - TinyMCE 中的自定义 URL 转换器逻辑

javascript - 如何使用foreach循环在mysql表中插入一个静态值和多个动态值?

javascript - 在 JavaScript 中 init 期间调用函数的正确方法

javascript - 在 this.state 中使用 JSX 但它被呈现为纯文本