/*我们想要的结果是循环显示出0,1,2,3,4*/
function box(){
var arr = [];
for (var i=0;i<5;i++){
return arr[i] = function(){
return i;
}
}
return arr;
}
var b = box();
for(var i=0;i<5;i++){
alert(b[i]);//这里中会循环显示5,因为闭包里面的函数并没有执行,要改成return arr[i] = (function(){return i})();
}
//创建一个构造函数式的对象
function User(){
var age = 100; //注意,在对象中,this.age或者User.age表示这个属性是公共的,而var age是私有的属性,对象实例是不可以访问的。
var run = function(){
return "理解中...";
}
}
var user1 = new User();
alert(user1.age);//返回undefined,因为私有的属性是访问不到的。
上述情况我们可以给对象添加一个公共接口,如下:
unction User(){
var age = 100;
var run = function(){
return "理解中...";
}
this.publicRun = (function(){return run()})();//因为publicRun()与run()方法在同一个作用域里面,所以是可以访问的,在实例化的时候直接访问publicRun就可以了。
}
浙公网安备 33010602011771号