JS问题,现在尝试使用闭包实现变量,但是无效

发布于 2022-09-13 00:01:34 字数 1545 浏览 14 评论 0

问题描述

我希望点击t1

第一次输出a是1

第二次输出a是2

保留a的数值

现在尝试使用闭包实现,但是无效

具体代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .t1 {
      width: 500px;
      height: 200px;
      background: #0C9A9A;
    }
  </style>
</head>
<body>

<div>
  <div class="t1">
    按钮
  </div>
</div>

<script>
  window.onload = function () {
    initClickEven()
  }

  function initClickEven() {
    // document.getElementsByClassName('t1')[0].onclick = function() {
    //   console.log(123)
    // }
    document.getElementsByClassName('t1')[0].onclick = function () {
      console.log('t1');
      handle(123);
    }
  }

  (function handle (data) {
    var a = 0
    return function () {
      a = a+1
      console.log(data, ' == ', a)
    }
  })();
</script>
</body>
</html>

感谢楼下提供思路

<script>
  window.onload = function () {
    initClickEven()
  }

  function initClickEven() {
    // document.getElementsByClassName('t1')[0].onclick = function() {
    //   console.log(123)
    // }
    document.getElementsByClassName('t1')[0].onclick = function () {
      console.log('t1');
      handle(321);
    }
  }

  var handle = (function () {
    var a = 0
    return function (data) {
      a = a+1
      console.log(data, ' == ', a)
    }
  })();
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

椒妓 2022-09-20 00:01:34
window.onload = function () {
    initClickEven()
  }

  function initClickEven() {
    // document.getElementsByClassName('t1')[0].onclick = function() {
    //   console.log(123)
    // }
    document.getElementsByClassName('t1')[0].onclick = function () {
      console.log('t1');
      handle();
    }
  }

  var handle = (function (data) {
    var a = 0
    return function () {
      a = a+1
      console.log(data, ' == ', a)
    }
  })(123);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文