zoukankan      html  css  js  c++  java
  • 委托与事件的关系

    委托与事件的关系

      委托与事件的关系,可参照字段跟属性的关系来理解。

      属性的一个功能就是设置字段,可以给字段设置权限。字段可以是值类型,也可以是引用类型,当然包括数组在内。那么委托呢?委托是把方法参数化,想要使用方法时直接使用就可以了(有时候要在不同的地方使用同一个方法,如果把方法的引用交给委托,要使用的时候直接让委托占位(委托去调用这个或这些方法),就方便多了)。

      声明一个委托:public deletate void MyDelegate();

      可以把委托当做一个容器(名片夹),里面装的是方法的引用(这里我们可以把方法理解为工具,而引用就相当于工具的一个名片来标识工具的位置),容器里可以装很多的名片夹(可以注册(+=)多个方法给委托),需要使用时,会按照名片的顺序来调用方法(多播委托)。

      一个委托类型的变量可以引用一个或多个方法。

      

     

        事件的本质就是对委托的封装,约束委托什么时候执行委托里面的方法(不然委托岂不是无法无天逍遥自在了),事实上事件也是对委托的一种安全保护,委托可以赋值,而事件是需要注册的。再者,事件可以定点定量的执行委托,

        委托可以赋值时因为委托本身装的就是方法的引用,引用本身就是一个“值”,裸露的值有可能被更改(如果委托被重新赋值,那么注册的方法的引用就都会被冲掉。+=是注册,而=是全部刷掉再赋新的值给引用),而事件只能注册。后续...........

     

    图解:

     

      《《当做笔记》》

     

  • 相关阅读:
    sql 保存,性能高
    老生常谈-从输入url到页面展示到底发生了什么
    HTTP 协议入门
    理解HTTP协议
    利用Vue v-model实现一个自定义的表单组件
    浅谈 Vue v-model指令的实现原理
    vuex介绍--一篇看懂vuejs的状态管理神器
    ES6之 =>箭头函数
    position定位-absolute与fixed
    JavaScript:理解事件、事件处理函数、钩子函数、回调函数
  • 原文地址:https://www.cnblogs.com/newking/p/4375077.html
Copyright © 2011-2022 走看看