Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript。为什么调用方法时不使用括号?_Javascript_Reactjs_Methods_Parentheses_Calling Convention - Fatal编程技术网

Javascript。为什么调用方法时不使用括号?

Javascript。为什么调用方法时不使用括号?,javascript,reactjs,methods,parentheses,calling-convention,Javascript,Reactjs,Methods,Parentheses,Calling Convention,我在Codecademy中学习React时遇到了以下示例: class MyClass extends React.Component { myFunc() { alert('Stop it. Stop hovering.'); } render() { return ( <div onHover={this.myFunc}> </div> ); } 类MyClass扩展了React

我在Codecademy中学习React时遇到了以下示例:

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

   render() {
      return (
         <div onHover={this.myFunc}>
         </div>
   );
 }
类MyClass扩展了React.Component{
myFunc(){
警报(“停止,停止悬停”);
}
render(){
返回(
);
}

我注意到当调用myFunc时,没有使用括号,我想知道为什么。如果有人能解释一下,我将不胜感激。

如果您添加()则只传递对函数的引用每次呈现网页时,函数都会执行。

如果您添加()则只传递对函数的引用该函数将在每次呈现网页时执行

HTML元素上存在各种事件,如单击、鼠标悬停等。 若您想对悬停在HTML元素上执行一些操作,那个么浏览器为我们提供了这些方法,这些方法将在这些操作发生时调用

  • 在上述情况下,元素悬停浏览器将触发/调用myFunc方法(onHover)处理程序
  • 当myFunc在悬停事件中触发时,不需要调用它
  • 不应在渲染内部调用OnHover处理程序,否则将在每个不正确的渲染中调用它

    • HTML元素上存在各种事件,如单击、鼠标悬停等。 若您想对悬停在HTML元素上执行一些操作,那个么浏览器为我们提供了这些方法,这些方法将在这些操作发生时调用

      • 在上述情况下,元素悬停浏览器将触发/调用myFunc方法(onHover)处理程序
      • 当myFunc在悬停事件中触发时,不需要调用它
      • 不应在渲染内部调用OnHover处理程序,否则将在每个不正确的渲染中调用它

      您正在传递
      onHover
      事件的回调名称。仅当您要执行函数时才需要括号。因为您正在传递对函数的引用…(函数定义,以便react可以在事件发生时执行它)因此:如果不使用括号,则不会调用函数/方法;特别是,通常在稍后调用回调,在这种情况下使用括号(在本例中,通过react在内部调用)实际上是调用函数的时候了。这是Javascript的一种行为:将函数作为参数传递。这篇文章已经清楚地解释了。您传递的是
      onHover
      事件的回调名称。仅当您要执行函数时才需要括号。因为您传递的是对函数的引用。。。(函数定义,以便react可以在事件发生时执行)因此:当不使用括号时,不会调用函数/方法;特别是,通常稍后调用回调,在这种情况下使用括号(在本例中由react内部调用)实际上是时候调用函数了。这是Javascript的一种行为:将函数作为参数传递。