Js_函数的补充

来源:互联网 发布:广州淘宝培训 编辑:程序博客网 时间:2024/05/16 18:07

函数的执行顺序

             fn1();             //不会报错,对于通过function fn()这种写法定义的函数,永远都会最先初始化             function fn1(){                 alert("fn1");             }
             fn2();             //使用如下方式定义函数,不会被先执行  会报错             var fn2 = function(){                 alert("fn2");             }

函数的作用域链

             var color = "red";             var showColor = function(){                 alert(this.color);             }             function changeColor(){                 var anotheColor = "blue";                 function swapColor(){                     var tempColor = anotheColor;                     anotheColor = color;                     color = tempColor;                 }                 swapColor();             }             changeColor();             showColor();

匿名函数

通过以下操作带来的最大好处就是,comparejectFunction的作用域变大了
当comparejectFunction结束之后,prop这个变量依然存在

             function comparejectFunction(prop){             // 匿名函数                 return function(obj1,obj2){                     if(obj1[prop]>obj2[prop]) return 1;                     else if(obj1[prop]<obj2[prop]) return -1;                     else return 0;                 }             }             var o2 = {name:"Ada",age:20};             var o1 = {name:"Leno",age:23};             //此时就是基于name来进行比较             /**                 在java或者c++中,以下代码执行完成之后,需要进行内存释放                 此时对于静态语言而言,prop会被释放             **/             var compare = comparejectFunction("name");             //此时就比较了o1 o2             var re1 = compare(o1,o2);
0 0
原创粉丝点击