Javascript. Почему скобки не используются при вызове методов? - PullRequest
0 голосов
/ 02 мая 2020

Я узнал о React в Codecademy, когда натолкнулся на этот пример:

class MyClass extends React.Component {
   myFunc() {
     alert('Stop it.  Stop hovering.');
   }

   render() {
      return (
         <div onHover={this.myFunc}>
         </div>
   );
 }

Я заметил, что когда вызывается myFun c, круглые скобки не использовались, и мне было интересно, почему. Буду признателен, если кто-нибудь сможет это объяснить.

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Вы передаете ссылку на функцию только в том случае, если добавляете () функцию, которая будет выполняться каждый раз, когда ваша веб-страница отображается

0 голосов
/ 02 мая 2020

На элементах HTML присутствуют различные события, такие как щелчок, наведение мыши и т. Д. c. если вы хотите выполнить какое-либо действие при наведении на элемент HTML, браузер предоставит нам эти методы, которые будут вызываться при возникновении этих действий.

  • В приведенном выше случае браузер при наведении элемента вызовет / вызовет myFun c обработчик метода (onHover)
  • Нет необходимости вызывать myFun c, поскольку он запускает событие Hover
  • Обработчик OnHover не следует вызывать внутри рендера, иначе он будет вызван каждый неправильный рендер
...