随手笔记javascript篇_模拟函数重载和闭包

javascript模拟函数的重载

arguments对象表示该函数接受的参数数组

例如:SayHi(1,2,3,4),则该函数的arguments数组为[1,2,3,4]。

 

模拟重载

function add(){

         if(arguments.length==1)

         {

                   alert(argument[0]+5);

         }

         elseif(arguments.length==2)

         {

                   alert(arguments[0]+arguments[1]);

         }

}

 

add(1);     //输出6

add(1,2);  //输出3

 

 

闭包

概念:

函数可以使用函数之外定义的变量。

 

使用方式:

1.        调用函数上级对象定义的变量(如全局变量):直接调用(简单闭包);

2.        调用函数同级或下级对象中定义的变量:返回函数调用(复杂闭包)。

 

例如:

function A()

{

         this.b=0;  //可以被外部调用,以属性方式

         vara;        //不可被外部调用,可被内部调用

         functionprinta(){

                   alert(a);

}

return printa;  //返回函数调用

}

 

可能引发的问题:

1.        内存泄露,即出现局部变量引用不为零的情况;

2.        上下文的引用容易产生混乱,如this的调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值