Function对象的引入,创建方法对象
/*
function say(name,age) {
alert("姓名:"+name+",年龄:"+age);
}
say("盖伦",24);
*/
//Function对象的引入,创建方法对象
var sayFunc=new Function("name","age","alert(\"姓名:\"+name+\",年龄:\"+age)");
sayFunc("盖伦",24);
Function对象属性
//Function对象属性
var sayFunc=new Function("name","age","alert(\"姓名:\"+name+\",年龄:\"+age)");
alert("sayFunc方法对象的方法的参数个数"+sayFunc.length);//输出参数2个
Function对象方法
//Function对象方法
var sayFunc=new Function("name","age","alert(\"姓名:\"+name+\",年龄:\"+age)");
alert(sayFunc.toString());
alert(sayFunc.valueOf());
JS变量的作用域
<script type="text/javascript">
var a="zibo";
function func() {
alert(a);
}
func();//读取全局变量a
/*
function func2(){
var b="nihao";
}
func2();
alert(b);//b读取不到,作用域出了
*/
function func3(){
c="welcome";
}
func3();
alert(c);//c可以读取
</script>
闭包
<script type="text/javascript">
function func2(){
var b="nihao";
//定义一个function,然后返回return,从而调用了私有变量
function func2(){//可以获取父方法的私有属性
alert(b);
}
return func2;
}
var result=func2();
result();
</script>
闭包的理解(访问私有变量d)
<script type="text/javascript">
function func4(){
var d="淄博";//相当于private属性
function func4(){//相当getter,setter
return d;
}
return func4;
}
var result=func4();
alert(result());
</script>
闭包
闭包是能够读取其他函数内部变量的函数
本质上闭包是函数内部和函数外部连接起来的一座桥梁
闭包的用途
1、读取函数内部的变量
2、让这些变量始终保持在内存中
闭包使用的注意点:
1、函数的变量保存在内存中,内存开销很大,不能滥用闭包,否则会造成网页性能问题,在IE中可能导致内存泄漏,解决办法,退出函数前,将不使用的局部变量全部删除。
2、闭包会在父函数外部改变父函数内部变量的值,使用时不要随意改变。
原文:http://www.cnblogs.com/void-m/p/6339935.html