JavaScript中调用函数的两种方式之间的区别澄清。

huangapple go评论70阅读模式
英文:

Clarification on the Difference Between Two Ways of Calling a Function in JavaScript

问题

我对这些情况下函数调用的方式有点困惑

onPress(() => myFunction())

onPress(myFunction)
是相同的吗,只是第二种是第一种的简化版本吗?

英文:

I am a little confused about the way function is called in these cases

onPress(() => myFunction())
And
onPress(myFunction)
Is it the same thing but the 2nd one is a shortened version of the first one?

答案1

得分: 1

以下是翻译的内容:

"onPress(() => myFunction())" 和 "onPress(myFunction)" 都会在发生 "onPress" 事件时调用 "myFunction" 函数。

第一个示例 "onPress(() => myFunction())" 使用箭头函数作为包装来调用 "myFunction"。箭头函数是一个匿名函数,在执行时立即调用 "myFunction"。这在需要将参数传递给 "myFunction" 或在调用 "myFunction" 之前执行一些额外操作时非常有用。

第二个示例 "onPress(myFunction)" 直接将 "myFunction" 函数作为参数传递给 "onPress" 事件处理程序。如果在调用 "myFunction" 之前不需要执行其他操作,这是一种更简短和简单的方法。

简而言之,第二个示例是第一个示例的缩写版本,但它们都实现了相同的功能。

在调用 "myFunction" 之前执行其他操作的示例:

想象一下,在 React 应用程序中有一个按钮组件,当按下按钮时,您希望在控制台中记录一条消息。除了记录消息之外,您还想执行一些其他操作,例如增加一个计数器。

您可以使用箭头函数来实现这一点,如下所示:

const MyButton = () => {
  let counter = 0;

  const handleButtonPress = () => {
    console.log('按钮被按下!');
    counter++;
  };

  return (
    <button onClick={() => handleButtonPress()}>
      点我
    </button>
  );
};
英文:

Both onPress(() =&gt; myFunction()) and onPress(myFunction) will call the myFunction function when the onPress event occurs.

The first example, onPress(() =&gt; myFunction()), uses an arrow function as a wrapper to call myFunction. The arrow function is an anonymous function that immediately calls myFunction when executed. This is useful if you need to pass arguments to myFunction or if you need to perform some additional operations before calling myFunction.

The second example, onPress(myFunction), directly passes the myFunction function as an argument to the onPress event handler. This is a shorter and simpler way to call the function if you don't need to do anything else before calling myFunction.

In short, the second example is a shortened version of the first one, but they both accomplish the same thing.

Example of additional operations before calling myFunction:

Imagine you have a button component in a React application and you want to log a message to the console when the button is pressed. In addition to logging the message, you also want to perform some other operation, such as incrementing a counter.

You could achieve this using an arrow function as follows:

const MyButton = () =&gt; {
  let counter = 0;

  const handleButtonPress = () =&gt; {
    console.log(&#39;Button pressed!&#39;);
    counter++;
  };

  return (
    &lt;button onClick={() =&gt; handleButtonPress()}&gt;
      Click me
    &lt;/button&gt;
  );
};

huangapple
  • 本文由 发表于 2023年4月17日 14:38:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/76032300.html