标签:span text 函数 eve 有趣的 思路 产生 box 程序
看到百度上有关事件委托的通俗易懂的讲解,觉得解释的不错,照搬过来以温习之用。
楼主的疑问和我当初很像,你努力的想弄明白什么是委托,你也从侧面了解到委托很重要,但是你并不知道委托具体是用来干什么的所以你才疑惑。
考虑一个问题,假设有两个对象 A 和B,现在A想要知道B一个状态(B_Staus)的变化,它马上去执行一个动作(A_Action),用你现在的思路你该如何解决这个问题?
有三种思路,第一种,A设个定时器每隔一段时间就检测B的状态,但是这种方案缺陷太大,你要不停的检测B的状态,可能B一年才回变一次,那就太浪费了。而且即使这样实时性也不好,不能保证马上检测到变化。
第二种 是将 A自己传递给B,让B发生变化后调用A的函数,但是这样B就要对A产生依赖,假如又来个C也要监听,那你还要改动B的代码,很不便,而且B要知道所有A的信息,这也是一种潜在的隐患。
第三种,就是只将A需要执行的A_Action函数传递过去,B发生变化之后自动执行这个函数,那就需要有一种传递函数的方案,这就是委托。
委托去定义一个函数的签名,所谓签名就是这个这个函数接收什么参数,返回什么参数,分别都是什么类型的。然后B 产生一个这个委托的实例,这就是事件。A或者C将自己的方法绑定到这个事件上来,即可。
摘自:
https://zhidao.baidu.com/question/1573655955150837900.html?qbl=relate_question_1&word=eventhandler
标签:span text 函数 eve 有趣的 思路 产生 box 程序
原文地址:http://www.cnblogs.com/lxxhome/p/6945407.html