javascript几种特殊的函数

<script type="text/javascript">
  	/*
  	 * 函数:
  	 * 	* 如何定义函数:
  	 * 		* 第一种普通方式:function 函数名(参数n){函数体}
  	 * 		* 第二种构造函数方式:var 变量名 = new Function(参数n,函数体);
  	 * 		* 第三种直接量方式:var 变量名 = function(参数n){函数体}
  	 */
//	function fn(){
//		alert("xxx");
//	}
	
//	var fn = new Function('a','b','return a+b;');
//	alert(fn(1,2));			//output	3
	
//	var fn = function(){
//		alet("xxx");
//	}
	
	
	//function fn(){}
	
	/*
	 * 特殊函数:
	 * 	* 匿名函数
	 * 		* 使用直接量方式定义函数时,使用到
	 * 		* 匿名回调函数:可以将匿名函数作为参数传递给其他函数。这样,接收方函数就能利用所传递的函数来完成某些事情。
	 * 		* 自调函数:可以定义某个匿名函数来执行某些一次性任务。
	 */
	//function(){}
	
	
	/*
	 * * 函数one和two,称之为叫做回调函数
	 * * 什么叫做回调函数?
	 * 		* 将一个函数作为另一个函数的参数传递,而作为参数的函数就叫做回调函数
	 * * 什么叫做匿名回调函数?
	 * 		* 将一个匿名函数作为另一个函数的参数传递,而作为参数的匿名函数就叫做匿名回调函数
	 */
//	var one = function(){return 1;}
//	var two = function(){return 2;}
	
	//接收的两个参数a,b都是函数
//	function fn(a,b){
//		return a() + b();
//	}
	
	//alert(fn(one,two));			//output	3
	
	//将以上写法改写成以下形式
	
	//匿名回调函数
	//alert(fn(function(){return 1;},function(){return 2;}));		//output	3
	
	/*
	 * 什么是一次性任务?
	 * 	* 页面载入,初始化工作(不严格)
	 * 	* 定义即调用(不复用)(不严格)
	 * 	* 自调函数
	 */
	
//	function aaa(){}
//	aaa();
	
	/*
	 * 自调函数:
	 * 	* 第一个小括号:定义函数(普通函数和匿名函数)
	 * 	* 第二个小括号:调用函数(可以传参)
	 */
//	(
//		function(){
//			alert("xxx");
//		}
//	)();
	
//	(
//		function(str){
//			alert(str+" xxx");
//		}
//	)("hello");
	
	/*
	 * 在一个函数体内,又定义了一个函数:内部函数,又叫做私有函数(java的内部类)
	 * 	* 保证了私有性 —— 在具体的函数内可以使用,在具体的函数外不能使用
	 */
//	function fn(){
//		var a = "a";
//		
//		function n(){
//			return a;
//		}
//		
//		return n();
//	}
//	
//	alert(fn());		//output	a
//	alert(n());			//output	a
	
	/*
	 * 返回函数的函数:
	 * 	* 就是内部函数的一种特殊用法
	 * 	* 在不多定义另外的函数时,可以执行两个逻辑体(外部的函数不能具有真实的返回值)
	 */
	function fn(){
		var a = "a";
		
		return function(){
			return a;
		}
	}
	
	//把return后面的内容,当作字符串
	fn();			//output	function(){return a;}
	
	//fn() = function(){return a;}
	//var fun = fn();
	//var fun = function(){return a;}
	
	//alert(fun());			//output	a
	
	alert(fn()());			//output	a
	
	
  </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值