我有一個自定義小部件。該小部件具有連接到DOM節點的單擊事件的功能。後來我想將第二個函數連接到第一個函數。將函數引用或函數名稱傳遞給_Widget.connect()時的不同行爲
但是,這隻適用於如果我首先將函數名稱而不是函數引用傳遞到connect
函數。
這將工作:
this.connect(this.domNode, 'onclick', 'onClick' /*<-- Function name*/);
this.connect(this, 'onClick', 'onClick2');
這不會:
this.connect(this.domNode, 'onclick', this.onClick /*<-- Function reference*/);
this.connect(this, 'onClick', 'onClick2');
Here是小提琴證明的行爲。當您點擊具有文本「功能名稱」的小部件時,將顯示兩個警報,當您使用文本「功能參考」單擊小部件時,只會顯示一個警報。
這是某種錯誤還是我誤解了某些東西?
所以,你的意思是,當我將'onClick2'連接到'onClick'時,dojo用動態創建的函數替換'onClick',而在第二種情況下它不會替換'myWidget.onClick',而只是'functionParameter'? –
我使用'connect',因爲這是仍然使用pre 1.7語法的遺留代碼。 –
在這兩種情況下都沒有'myWidget.onClick'被替換。但是,僅在第一種情況下調用myWidget.onClick,而在第二種情況下調用functionParameter,這是您原始的「onClick」的實例。 –