java的回调函数与javascript回调函数 对比

本文详细介绍了JavaScript和Java中回调函数的应用场景及其实现方式。JavaScript中通过函数作为参数传递来更新父页面数据;Java则通过接口和类实现回调机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回调函数的使用场景:

1.js中:点击新增,填写数据,保存后,需要重新刷新父页面的数据(列表)。所以这时回调函数就派上用场了。

一般情况下,整个流程的走向是:A页面上有个点击按钮:点击按钮这个动作将函数名称传递到B(编辑页面中),B(编辑页面)保存后,做一些自己的动作后,获得A页面,通过A页面调用传过来的函数。   这个函数就是回调函数了,一般在这个函数中做刷新A页面数据的动作。

代码:

A页面点击新增:将发送这个请求

var URL = "${pageContext.request.contextPath}/configitem/property/select_property.do?stype=m&dialogFrameId=MethodEdit&callback=propertyBack&slaProcedure="+slaProcedure;

A页面中写好了函数:

  function propertyBack(row)
	   {
	  var id=new Array();
	   for(var i=0;i<row.length;i++)
	   {
	   id.push(row[i].attributeCode);
	   }
	   var ids=id.join(";");
	   $("#conditionFile").val(ids);
	   }


B页面中通过${param.callback}获得函数名称,并且执行:当然前提是要获取到A页面的对象: var api = frameElement.api, W = api.opener; //父window对象

    function colseWin(row){
	    	if("${not empty param.dialogFrameId}"=="true")
	    	{
	    		
	    	//回调函数
	    	if("${not empty param.callback}"=="true"){
		    	if("${not empty param.dialogFrameId}"=="true"){
		    		eval("api.get('${param.dialogFrameId}').${param.callback}(row)");
		    	}else{
		    		eval("W.${param.callback}(row)");
		    	}
	    	}
	    	api.get("${param.dialogFrameId}").Common.setTopDialog();
	    	frameElement.api.close();
	    	}
	    }


2.java如何实现回调呢?

JAVA实现回调需要2个类,1个接口;这个接口中声明一个函数(这个函数就是回调函数了)

A类实现接口,并重写函数。然后把A类创建的对象传递到B类对象中。B类中的方法(先做自己的方法,在通过然后通过接口调用A类实现的方法)

直接上代码:

public interface CallBack {
	
	void excut();
}


public class A implements CallBack{

	@Override
	public void excut() {
	System.out.print("我是回调函数");
	}

	public static void main(String str[])
	{
		
		B b=new B(new A());
		b.doSome();
	}
}


public class B {
	/** 
	 * @author cwy 
	 * @date 2017-1-6 下午8:31:18
	 * @version 版本号码
	 * @TODO 描述
	 */
	private CallBack callBack;
	
	public B(CallBack callBack){
		
		this.callBack=callBack;
	};
	
	
	public void  doSome()
	{
		
		System.out.println("我做我的事情先");
		callBack.excut();               //执行传进来的对象的函数
	}
}

一个简单的回调就好了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值