說一些我對委托機制的理解,歡迎提出不同的看法?
我覺得委托機制就是為了規避冒泡(子孫元素繼承父元素的事件);
除了少數事件如(focus)可以規避冒泡外,其余的事件都有冒泡機制。
從開發者角度看待本節中,假設給body設置了一個事件,則他的子孫后代都能觸發這個事件,若開發者的目的是指定一個元素可以觸發該事件,則需要使用委托機制來規避這種冒泡行為。
并且我在測試中發現委托機制中,使用this指向的不是綁定元素的DOM對象,而是第二參數的DOM對象。
形象類比,有個老頭子body開了一個公司,按照道理他的所有后代都可以調用這個公司的財務,一旦老頭子body的子孫多了,會使得公司的管理變得非?;靵y;所以老頭子body就把公司的財務管理權限給了指定人a,現在的公司只有a能調動財務,使得財務管理變得簡潔。因為a是實際的財務管理者,所以財務總監的名字就是a(this指向a的DOM對象)。
歡迎質疑,歡迎提出不同的看法,謝謝!
2020-04-09
補充下,a包含它的后代,剛剛調試過
2020-04-08
剛看了別人一個問題后有了啟發
第二參數并不是委托給它
例如老頭子body開了個公司,如果沒有第二參數,那全公司所有人都可以調用財務
如果有第二參數a,
當a是最底層員工時,即沒有子元素,那么全公司只有a可以調用財務
當a是非底層員工時,即a有后代或子元素,那么全公司只要是a或a的后代都可以調用財務
冒泡是從內往外冒泡,a在最里面的時候只有a可以觸發事件,a如果在中間,那么從最里面一直冒泡冒到a,這些后代都可以觸發
2020-04-08
還不懂這些,繼續學