【建站服务】张家界公众号代运营公司-域名申请
作者: 风兰 . 阅读量: 3 . 发表时间:2022-09-21 03:45:22
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
张家界公众号代运营公司

方式太过巧妙,给人的感觉就是在夹缝中求生存。用起来也不舒服吧。
风之翼
风之翼
kof***dj@aliyun.com
4年前 (2018-03-14)
TriumPH
870***185@qq.com
29
5楼说的太对了,这个 bug 用着真不痛快,针对这个例子写了点代码:
局部变量计数。
<button type="button" onclick="myFunction()">计数!</button>
<p id="demo">0</p>
<script>
var add = new Object();
add.count = 0;
add.plus = function()
{
this.count++;
}
function myFunction(){
add.plus();
document.getElementById("demo").innerHTML = add.count;
}
</script>
尝试一下 »
感觉可以用正常的手段解决这类问题了。
TriumPH
TriumPH
870***185@qq.com
4年前 (2018-07-02)
Silmeria
sil***ia9@qq.com
134
针对 5楼、6楼 的一些错误进行指明:
5楼:{ var tmp = 2 } JS 中语句块不能独立作用域,这样写等同于声明了一个全局变量 tmp = 2,所以不存在该语句块内代码执行完毕后 tmp 就被销毁的情况。
6楼:变量 add,以及 add 的 count 属性、plus() 方法都是公共的,这意味着其他代码可以直接修改你的 count 属性,造成不必要的麻烦
闭包要解决的问题是:一个函数可以拥有私有变量,并且外部可以通过闭包访问该私有变量,如特权方法(类似 JavaBean 的写法):
<script>
function Student(value) {
var name = value;
this.getName = function() { return name; };
this.setName = function(value) {name = value; };
}
<script>
Silmeria
Silmeria
sil***ia9@qq.com
4年前 (2018-07-27)
c-dev
284***590@qq.com
210
5楼和6楼完全没有理解闭包。
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站



以,闭包就是利用了个bug: 退出作用域的变量不会立即销毁。会影响后面的同名变量。
但不知道后面的javascript版本会不会修改这种机制。
所以代码这么写是不可靠的。太依赖于javascript的内部实现了。
其实要实现全局计数器的需求。正常的做法是:
定义一个全局对象。这个对象定义自己的属性和方法add。
用的时候 对象.add 就可以了。这个才正常。
上面用闭包的方式太过巧妙,给人的感觉就是在夹缝中求生存。用起来也不舒服吧。
风之翼
kof***dj@aliyun.com
TriumPH
870***185@qq.com
5楼说的太对了,这个 bug 用着真不痛快,针对这个例子写了点代码:
局部变量计数。
<button type="button" onclick="myFunction()">计数!</button><p id="demo">0</p><script>var add = new Object();add.count = 0;add.plus = function(){ this.count++;}function myFunction(){ add.plus(); document.getElementById("demo").innerHTML = add.count;}