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