针对 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>
发表评论 取消回复