回调函数

1今天说一下我对回调函数的认识和理解. 

var addEvent = (function () {
    if (document.addEventListener) {
        return function (type, element, fun) {
            element.addEventListener(type, fun, false);
        }
    }
    else if (document.attachEvent) {
        return function (type, element, fun) {
            element.attachEvent('on' + type, fun);
        }
    }
    else {
        return function (type, element, fun) {
            element['on' + type] = fun;
        }
    }
})();
var removeEvent = (function () {
	if (document.removeEventListener) {
		return function (type, element, fun) {
			element.removeEventListener(type, fun, false);
		}
	}
	else if (document.detachEvent) {
		return function (type, element, fun) {
			element.detachEvent('on' + type, fun);
		}
	}
	else {
		return function (type, element, fun) {
			element['on' + type] = null;
		}
	}
})();

 

其实我们收到短信,手机铃声响起就是一个回调函数

var ring= function () {
        //手机铃声响起或手机震动
    };
    addEvent('收到短信', 手机, ring);

 我们读小学时,午休会让班长(监听器)巡逻,看哪个小伙伴(事件目标)睡觉不老实(比如说话打闹,这是事件),一旦发现就通知班主任(事件处理程序). 

这里涉及到4个概念: 
(1)监听器:负责不断地检查各个元素,看是否有事件发生,我们可以先简单地理解为轮询; 
(2)事件:比如小伙伴挠别人脚丫,这个按钮被点击了. 
(3)事件目标:事件发生在谁身上,这个按钮被点击了,那么这个按钮就是target 
(4)事件处理程序:当事情发生时该怎么办呢?交给谁处理呢?比如班长发现小明捣乱不让同桌睡觉,就会通知班主任(事件处理程序)处理. 
回调函数就相当于事件处理程序.上述代码中的ring就是回调函数,也是事件处理程序.

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script type="application/javascript">
        var sayHello= function () {
            alert("找我干嘛");
        }
    </script>
</head>
<body>
<div id="outDiv" style="width: 200px;height: 50px;background-color: #9a9afb">
    <input type="button" id="myBtn" onclick="sayHello();" value="点我啊"/>
</div>
</body>
</html>

 上例中,sayHello就是回调函数 

XMLHttpRequest的onreadystatechange也是回调函数

java中有没有回调函数呢?没有!js中可以把函数当做变量来传递,但是java中不能,java中是通过接口来实现监听器模式的.

delButton_1 = new JButton("删除注释");
        delButton_1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String domain=domainTextField1.getText();//Constant2.HOSTS_PATH
                opHosts(domain, false);
            }
        });

 如上java 代码,给按钮的点击事件增加了一个事件处理程序,我们传过去的是一个接口,当事件(用户单击)发生时就会执行actionPerformed 方法,而不是执行其他方法.也就是说actionPerformed 相当于一个事件处理程序,具体怎么反应,我们可以实现这个接口,来做具体的响应. 

参考:http://blog.youkuaiyun.com/hw1287789687/article/details/45876843

http://blog.youkuaiyun.com/hw1287789687/article/details/45877693

 

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值