主页 > 前端 > javascript >
来源:未知 时间:2017-09-18 13:53 作者:xxadmin 阅读:次
[导读] 作用域链: //作用域链vara=1;functiontest(){varb=2;returna;}alert(test());//弹出1;alert(b);//不能获取b//scopechainvara=1;functiontest(){varb=2;functiontest1(){varc=3;alert(a);alert(b);alert(c);}test1();}test();//弹出1,弹出...
作用域链: //作用域链 var a = 1; function test() { var b =2; return a; } alert(test());//弹出1; alert(b);//不能获取b //scope chain var a = 1; function test() { var b = 2; function test1() { var c = 3; alert(a); alert(b); alert(c); } test1(); } test();//弹出1,弹出2,弹出3; 词法作用域: //词法作用域; function f1() { var a = 12; return f2(); } function f2() { return a; } alert(f1());//并不能获取a,a在f2()中并未定义; function f1() { var a = 1; return f2(); } function f2() { var b = 3; alert(b); return a; } alert(f1());//弹出3,a在f2()中未定义 function f1() { var a = 1; return f2(); } function f2() { var b = 3; alert(b); return a; } alert(f1());//弹出3,a在f2()中未定义,undefined var a=55; alert(f1());//弹出3,弹出55 如何通过闭包突破全局作用域链——几种常见形式 //通过闭包突破全局作用域链 function f() { var a = "sun"; return function () { return a; } } var test = f(); alert(test());//弹出sun var n; function f() { var a = "sun"; n = function () { return a; } } f(); alert(n());//弹出sun function f(param) { var n =function () { return param; }; param++; return n; } var test = f(45); alert(test());//弹出46; |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com