有人能帮我看下这个计数器为什么不工作吗? javascript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主,可以按以下方式试试:<script> var add = {}; (function (add) { var counter = 0; add.getCount = function(){ return counter += 1; } })(add); function myFunction(){ document.getElementById("demo").innerHTML = add.getCount(); } </script> var add = (function () { var counter = 0; return counter += 1;})();改为var add = function () { var counter = 0; return counter += 1;} var counter = 0;var add = function () { return counter += 1;} 谢谢,是工作的,但是有点看不懂,能说下为什么要给这个闭包一个参数add吗? 如果可以的话,能说下我原来的代码为什么是错的吗? 谢谢,是工作的,但是有点看不懂,能说下为什么要给这个闭包一个参数add吗? 如果可以的话,能说下我原来的代码为什么是错的吗?add是一个空对象,初始化了一个匿名函数,将add作为空对象作为参数传入匿名函数中,然后在匿名函数中定义一个闭包来修改匿名函数中的变量,这样就可以达到效果了。你的错误是匿名函数的赋值错误,基本上不会向你那样赋值的,其次是不用闭包的话counter不应该定义在函数体内,定义在函数体内就是局部变量每次点击都是0开始,当然不能增加了,起始你也可以改成如下形式: var counter = 0; var add = (function () { return counter += 1; }); function myFunction(){ document.getElementById("demo").innerHTML = add(); } 是这个吗?<button type="button" onclick="myFunction()">Count!</button> 谢谢,是工作的,但是有点看不懂,能说下为什么要给这个闭包一个参数add吗? 如果可以的话,能说下我原来的代码为什么是错的吗?add是一个空对象,初始化了一个匿名函数,将add作为空对象作为参数传入匿名函数中,然后在匿名函数中定义一个闭包来修改匿名函数中的变量,这样就可以达到效果了。你的错误是匿名函数的赋值错误,基本上不会向你那样赋值的,其次是不用闭包的话counter不应该定义在函数体内,定义在函数体内就是局部变量每次点击都是0开始,当然不能增加了,起始你也可以改成如下形式: var counter = 0; var add = (function () { return counter += 1; }); function myFunction(){ document.getElementById("demo").innerHTML = add(); }你说的第二种方法,会把counter作为global 变量暴露出来啊 急求一个 jqgrid 参考手册 为什么我网站首页的flash要刷新2次才能读取出来? form表单提交,怪异 关于ajax问题 高分等你罗!简单的js变量问题。请你优化下面的代码。 这个如何写正则表达式? 网站测试,大家提提意见 这一句该怎么写? window.open一个新窗口,怎么让最大化失效? 新人求解 手机网页怎么高清 tab页显示百度地图
var add = {};
(function (add) {
var counter = 0;
add.getCount = function(){
return counter += 1;
}
})(add);
function myFunction(){
document.getElementById("demo").innerHTML = add.getCount();
}
</script>
var counter = 0;
return counter += 1;
})();
改为
var add = function () {
var counter = 0;
return counter += 1;
}
var add = function () {
return counter += 1;
}
谢谢,是工作的,但是有点看不懂,能说下为什么要给这个闭包一个参数add吗? 如果可以的话,能说下我原来的代码为什么是错的吗?
谢谢,是工作的,但是有点看不懂,能说下为什么要给这个闭包一个参数add吗? 如果可以的话,能说下我原来的代码为什么是错的吗?
add是一个空对象,初始化了一个匿名函数,将add作为空对象作为参数传入匿名函数中,然后在匿名函数中定义一个闭包来修改匿名函数中的变量,这样就可以达到效果了。你的错误是匿名函数的赋值错误,基本上不会向你那样赋值的,其次是不用闭包的话counter不应该定义在函数体内,定义在函数体内就是局部变量每次点击都是0开始,当然不能增加了,起始你也可以改成如下形式: var counter = 0;
var add = (function () {
return counter += 1;
});
function myFunction(){
document.getElementById("demo").innerHTML = add();
}
是这个吗?
<button type="button" onclick="myFunction()">Count!</button>
谢谢,是工作的,但是有点看不懂,能说下为什么要给这个闭包一个参数add吗? 如果可以的话,能说下我原来的代码为什么是错的吗?
add是一个空对象,初始化了一个匿名函数,将add作为空对象作为参数传入匿名函数中,然后在匿名函数中定义一个闭包来修改匿名函数中的变量,这样就可以达到效果了。你的错误是匿名函数的赋值错误,基本上不会向你那样赋值的,其次是不用闭包的话counter不应该定义在函数体内,定义在函数体内就是局部变量每次点击都是0开始,当然不能增加了,起始你也可以改成如下形式: var counter = 0;
var add = (function () {
return counter += 1;
});
function myFunction(){
document.getElementById("demo").innerHTML = add();
}
你说的第二种方法,会把counter作为global 变量暴露出来啊