JS问题,现在尝试使用闭包实现变量,但是无效
问题描述
我希望点击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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)