onclick事件函数改变全局变量的问题

新手上路,请多包涵

搜索了不少问题没有找到想要的答案,可能是我没搞懂核心问题是啥。
想问一下onclick事件函数中并不能改变全局变量的值吗,那要如何才能改变:

<body>
    <button id="btn">加一</button>
    <script>
        var btn = document.getElementById("btn")
        var num = 1;
        btn.onclick = function () {
            num += 1;
            console.log(num); // num = 2/3/4...
        }
        console.log(num) // num = 1
    </script>
</body>

就是一个简单的全局变量,想通过点击事件使全局变量的值增加。
但是变量始终只在内部增加,我试了一下普通函数可以直接改变全局变量的值,但是事件函数就是不行

阅读 4.7k
1 个回答

你怎么验证外部变量改变了呢?通过最后那句console.log吗?但是这条语句只在script脚本初始化的时候执行了一次,点击的时候并不会执行了,怎么判断全局变量没改呢?

其实是改了的,只是验证的方式不太对。

在chrome上我点击了几次按钮,然后在控制台输入num打印全局变量,是变了:

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题