亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

onClick={() => functionHere} 與 onClick

onClick={() => functionHere} 與 onClick

手掌心 2023-10-14 11:13:13
快速問題:以下之間的主要區別是什么:onClick = {() => functionHere}和:onClick = {functionHere}我真的很困惑,因為有時() =>可以工作,有時我需要將其刪除,然后單獨使用functionHere。多謝!編輯函數這里是這樣的:const functionHere = () => {    console.log("called")    // some codes here}
查看完整描述

2 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

我相信這只是用語言思考你在做什么的問題。

想想這樣:functionHerevs functionHere()。有什么不同?沒有括號,它是對函數的引用,而有括號,它是函數執行器

現在,就像 @merlin 所說,如果你這樣做,() => functionHere你就是在聲明一個返回引用的函數,而不是一個執行器(無論如何,這應該不是很常見)。在這種情況下,onClick 將不起作用,因為不會調用執行器。

比較常見的是這個() => functionHere()。這將返回執行器,這意味著當調用 onClick 事件時,functionHere 將實際運行(因為執行器)。

將引用直接傳遞到onClick工作中,因為它是為在函數傳遞給它的任何地方運行而構建的。因此傳遞引用總是有效的,而傳遞返回引用的函數則不行????


另外, 如果您不需要控制傳遞哪些道具,只需使用引用即可。如果您想對道具進行一些控制,請使用箭頭功能(name) => functionHere(name)


查看完整回答
反對 回復 2023-10-14
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

() => functionHere執行時返回該函數functionHere,這意味著它與 just 相同functionHere。

由于您沒有執行它,所以當您將值分配給沒有鍵的對象時,應該會拋出語法錯誤。

為了避免不必要的函數執行,你應該這樣寫

onClick?=?{functionHere}

請注意,這是有效的,因為 ES6 中引入了簡寫文字表示法,這使得它相當于

onClick?=?{funcitonHere:?functionHere}


查看完整回答
反對 回復 2023-10-14
  • 2 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號