javascript中函数当做对象传递

javascript中,函数也是对象。

先说下js的两种定义函数对象的方式:

写道
function commMethod(){
            alert("commMethod is doing something");
        }
       
     
  var commMethod = function(){
            alert("commMethod is doing something");
        }

 上面的两种定义方式本质上是一样的。所以如果将这两个函数当做对象传递的时候,写法也是一样的。

 下面看一下javascript中,函数当做对象传递的例子

	//被调用的方法
		function commMethod


(){
			alert("commMethod is doing something");
		}
		
		//调用函数commMethod


的方法
		function methodInvoke(method){
			method();
		}
		methodInvoke(commMethod);

 

很显然,上面的例子也可以这么写

	var commMethod 


= function(){
			alert("commMethod is doing something");
		}
		//调用函数commMethod


的方法
		function methodInvoke(method){
			method();
		}
		methodInvoke(commMethod);

 这两种的方式是一样的。

当然,我们也可以不定义commMethod,直接用无具名的对象 调用。

	function methodInvoke(method){
			method();
		}
		methodInvoke(function(){
				alert("commMethod is doing something");
		});

 这种写法和上面的写法是一样的。

下面写一种带参的调用:

//被调用的方法
		function commMethod(keword){
			alert("commMethod is doing something" + keword);
		}
		//这个和function commMethod这种定义的方式效果一样,不再单独写。



		/**var commMethod = function(keword){
			alert("commMethod is doing something" + keword);
		}**/
		//调用函数commMethod方法
		function methodInvoke(method){
			var keyword = "   hi,girl";
			method(keyword);
		}
		methodInvoke(commMethod);

 结果

commMethod is doing something   hi,girl"

如果用无具名函数进行调用,你会不会迷糊呢?反正我一开始迷糊了。

function methodInvoke(method){
			var keyword = "   hi,girl";
			method(keyword);
		}
		methodInvoke(function(key){
			alert("无具名函数的调用:::" + key);
		});

 结果:

无具名函数的调用::: hi,girl

无具名函数的调用和上面的函数调用过程是一样的,只不过比较难理解一些。

看完了上面的过程,你再看下jquery的ajax请求里面的get方法

$.get("test.php", function(data){
  alert("Data Loaded: " + data

);
});

 对于data的值怎么来的,是不是倍感亲切了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值