javaScript 面向对象-函数

javascript面向对象:内容非常多 这里制作部分介绍

函数


* Arguments 对象:实现函数的重载的效果
        * 变量的作用域:
            * javascript中,只存在全局域和函数域
            * 在定义局部变量时,不使用"var"修饰符时:被定义为全局变量
            * 在全局变量与局部变量同名时:参看代码
        * 特殊函数:
            * 匿名函数
            * 回调函数
            * 自调函数
            * 私有函数
            * 返回函数的函数

Arguements

 <script type="text/javascript">
  					/*
  					 * * java中的函数,重载
  					 * 		* 节省了命名空间
  					 * 		* 执行效率高
  					 * * javascript中的函数有没有重载?没有
  					 * 		* 当定义多个同名的函数时,最后一个函数会覆盖前面所有的函数
  					 * 		* 当多个函数同名时,最后一个定义的函数起作用
  					 */
//					function add(a,b){
//						return a+b;
//					}
//					
//					function add(a,b,c){
//						return a+b+c;
//					}
//					
//					alert(add(1,2));		//output	NaN NotAnNumber
//					alert(add(1,2,3));		//output	6
					
					//想办法:在javascript中,实现函数重载的效果
					/*
					 * arguments对象:
					 * 	* arguments对象是数组对象
					 * 	* arguments对象的length属性,获取到的是参数的个数
					 */
//					function fn(){
//						alert(arguments.length);
//					}
//					
//					fn();					//output	0
//					fn("a");				//output	1
//					fn("a","b");			//output	2
//					fn("a","b","c");		//output	3
					
					function add(){
						if(arguments.length==2){
							return arguments[0] + arguments[1];
						}else if(arguments.length==3){
							return arguments[0] + arguments[1] + arguments[2];
						}
					}
					
					alert(add(1,2));			//output	3
					alert(add(1,2,3));			//output	6
					
  </script>

函数的定义域

<script type="text/javascript">
  					/*
  					 * * 变量a是全局变量,环境中任意位置都可以访问
  					 * * 变量b是局部变量,只能在函数fn()中访问
  					 * * 在javascript中,只存在全局变量和局部变量
  					 * * 在javascript中,只存在全局域和函数域
  					 */
//					var a = "a";
//					
//					function fn(){
//						var b = "b";
//						
//						alert(a);		//output	a
//						
//						alert(b);		//output	b
//					}
//					
//					fn();
//					alert(a);			//output	a
//					alert(b);			//output	undefind
					
					/*
					 * 在javascript中,不使用修饰符"var"时:
					 * 	* 环境会自动将变量的定义为全局变量
					 * 	* 并不报错
					 */
//					var a = "a";
//					
//					function fn(){
//						b = "b";
//						
//						alert(a);		//output	a
//						
//						alert(b);		//output	b
//					}
//					
//					fn();
//					alert(a);			//output	a
//					alert(b);			//output	b
					
					/*
					 * 全局变量与局部变量同名时:
					 * * 定义了全局变量a,并初始化为"a"
					 * * 定义了函数fn(),有没有执行函数中的代码?没有
					 * 		* 局部变量a,有没有被定义?被定义,但是没有初始化
					 * * 调用函数fn()时
					 * 		* 第一个打印结果,打印的是局部变量a。但是因为局部变量a没有初始化,所以是undefind
					 * 		* 第二个打印结果,打印的是局部变量a。局部变量a初始化了,所以是b
					 */
					var a = "a";
					
					function fn(){
						
						alert(a);		//output	undefind
						
						var a = "b";
						
						alert(a);		//output	b
					}
					
					fn();
					alert(a);			//output	a
  </script>

特殊的函数

<script type="text/javascript">
//  					function add(a,b){
//						return a+b;
//					}
					
					/*
					 * 1 匿名函数:没有名的函数
					 * 	作用:
					 * 		* 可以将匿名函数作为参数传递给其他函数。这样,接收方函数就能利用所传递的函数来完成某些事情。
					 * 		* 可以定义某个匿名函数来执行某些一次性任务
					 */
//					function(){}
					
					/*
					 * one和two函数,叫做回调函数
					 * 回调函数:将函数作为参数传递给其他函数,作为参数的函数就是回调函数
					 */
					function fn(a,b){
						return a() + b();
					}
					
//					var one = function(){return 1;}
//					var two = function(){return 2;}
					
//					alert(fn(one,two));			//output	3
					
					//以上代码可以改写:匿名回调函数
//					alert(fn(function(){return 1;},function(){return 2;}));		//output	3
					
					//定义即调用函数
//					function fn(){
//						alert("javascript");
//					}
//					fn();
//*********************************************************			
					/*
					 * 自调函数:执行一次性任务
					 * 	* 第一个小括号:封装函数体
					 * 	* 第二个小括号:调用封装的函数
					 */
//					(
//						function(){
//							alert("javascript");
//						}
//					)();
					
//					(
//						function(str){
//							alert(str+" javascript");
//						}
//					)("hello");
					
					/*
					 * 私有(内部)函数:内部类
					 * 	* 保证了私有性 ———— 只把必要性的内容暴露给外界,其他所有内容保留在私有空间中
					 * 	* 节省全局域命名空间
					 */
//					function fn(){
//						var a = "javascript";
//						
//						function n(){
//							return a;
//						}
//						
//						return n();
//					}
					
//					alert(fn());		//output	javascript
//					alert(n());			//output	undefind
					
					/*
					 * 返回函数的函数
					 * 	* 在定义一个函数的时候,可以执行两个逻辑代码
					 * 	* 第一个函数,没有真正的返回值
					 */
					function fn(){
						var a = "javascript";
						
						return function(){
							return a;
						}
					}
					
					//alert(fn());		//output	function(){return a;}
					
					//var fun = fn();
					//var fun = function(){return a;}
					
					//alert(fun());		//output	javascript
					
					alert(fn()());		//output	javascript
					
  </script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值