Javascript初级 JavaScript进阶

JavaScript闭包



自定义函数


1、通过function关键字


function 函数名称([参数,...]){

代码段;

return 返回值;

}


注意


①函数名称不要包含特殊字符

②函数名称最好含义明确

③函数名称最好遵循驼峰标记法或者下划线法

④函数名称严格区分大小写

⑤函数名称如果重复会产生覆盖

⑥函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数

⑦函数通过return加返回值,如果没有return 默认返回undefined

⑧函数不调用不执行


2、匿名函数


①函数表达式可以存储在变量中,变量也可以作为一个函数使用

②可以将匿名函数作为参数传递给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能

③可以通过匿名函数来执行某些一次性的任务


3、通过Function()构造函数


①通过内置JavaScript函数构造器(Function())定义:

var myFunction=new Function('a','b','return a+b');

var myFunction=function(a,b){return a+b;};

通过js内置函数构造器创建函数,示例代码:


javascript1.png 


②注意:

A、以上两种方式是等价的

B、尽量避免使用new关键字



变量的作用域


1、局部变量


在函数体内声明的变量,仅在函数体内可以使用


2、全局变量


函数体外声明的变量,在变量声明开始到脚本结束都可以是使用


3、注意


尽量控制全局变量的数量,容易引发bug

最好总是使用var语句来声明变量


4、关于作用域的示例:


下面例子中的b是一个局部变量,是得不到值的:


javascript2.png 


此时的b就会报错(局部变量只限于函数体内):


javascript3.png 


a作为一个全局变量,它的值是可以返回的:


javascript4.png 


5、有关作用域链的示例:


javascript5.png

 

6、词法作用域相关示例:


javascript6.png 


7、对变量重复添加的示例:


javascript7.png 


8、如何使用闭包突破全局作用域链的示例1:


javascript8.png 

 

9、如何使用闭包突破全局作用域链的示例2:


javascript9.png 


javascript10.png 



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

麦子大聚惠,豪华礼包你领了吗?

客服热线 400-862-8862

回到顶部