JavaScript函数对象

在JavaScript中,函数也是对象,我们使用下面的语句定义一个函数的时候,其实是定义了一个Function类型的对象。

function add(a,b){
	return a+b;
}
add.apply(document,[1,2])
 

   为了说明这个问题,我们可以使用Function的构造函数来定义一个add函数:

 

<script language="javascript">
   var add = new Function('a','b','return a+b');
 		alert(add(1,2));
</script>

  使用这种方法定义的函数和上面的函数完全一样,不过这种语法比较麻烦,一般不会使用。

 

 

(函数)Function对象的call方法

call是一个非常有用的方法,它可以控制函数的运行环境,即控制函数内部this所指向的对象。下面的例子可以说明这个问题:

<html>
<head>
		<script language="javascript">
		   function whatsThis(){
		 		alert(this);
		 	  }
		</script>
</head>
<body>
<button οnclick='whatsThis()'>whatsThis() </button>
<button οnclick='whatsThis.call(document)'>whatsThis.call(document)()</button>
</body>
</html>
 

 

如果原来的函数需要接受参数,例如add函数,可以使用如下形式:

add.call(document,1,2)
 

也就是说,call的第一个参数是要绑定给this的对象,而1和2则是原来的add函数需要接受的参数。

(函数)Function对象的apply方法

apply的使用方法与call基本一致,只是参数是以数组的形式传递的,还是以add函数为例:

add.apply(document,[1,2])
 

 

可以看到,原函数add需要接受的两个数字参数是以一个数组的形式传递进apply的。

 

 

函数)Function对象的arguments属性

javascript的函数可以接受任意数量的参数,所以定义的时候,参数的个数作并不会限制函数的这个能力。在函数中,我们可以使用arguments来访问传入函数的参数,例如:

 

<html>
<head>
		<script language="javascript">
   function howmany(){
   var num = arguments.length;
   alert(num);
 }
		</script>
</head>
<body>
<button οnclick='howmany(1,2,3,4)'>howmany(1,2,3,4)</button>
<button οnclick='howmany(1,2,3,4,5,6,7,8)'>howmany(1,2,3,4,5,6,7,8)</button>
</body>
</html>
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值