1. 通过在函数中创建函数,并返回来延迟作用域链的存在时间(掌握执行环境/作用域链/this/活动对象/arguments/全局对象概念的理解)
2. 模仿块级作用域 (javascript不存在块级作用域)
for ( var i=0;i<10;i++){ alert(i); } alert(i); //10 function outputNumbers(count){ ( function (){ for ( var i=0;i<count;i++){ } })(); alert(i); //
找不到该变量 //匿名函数自执行后吗,变量占的内存空间全部释放<br>} |
可以使用构造函数或原型模式来创建私有变量:
function
person(name){
this
.getname
=
function
(){
return
name;
};
this
.setname
=
function
(value){
name
= value;
};
}
var
person1
=
new
person(‘pingzidong’);
person1.setname(‘mm’);
alert(person1.getname());
( function (){ var name
= ‘’; Person
= function (val){ //Person全局函数 name
= val; }; Person.prototype.getname
= function (){ return name; }; Person.prototype.setname
= function (val){ name
= val; } })(); var person
= new Person(‘pingzidong’); var person2
= new Person(‘mm’); person1.getname //mm person2.getname //mm |
( function (){ var name
= ‘’; Person
= function (val){ //Person全局函数 name
= val; }; Person.prototype.getname
= function (){ return name; }; Person.prototype.setname
= function (val){ name
= val; } })(); var person
= new Person(‘pingzidong’); var person2
= new Person(‘mm’); person1.getname //mm person2.getname //mm |