Javascript。为什么调用方法时不使用括号?
我在Codecademy中学习React时遇到了以下示例: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
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处理程序,否则将在每个不正确的渲染中调用它
- 在上述情况下,元素悬停浏览器将触发/调用myFunc方法(onHover)处理程序
- 当myFunc在悬停事件中触发时,不需要调用它
- 不应在渲染内部调用OnHover处理程序,否则将在每个不正确的渲染中调用它
- HTML元素上存在各种事件,如单击、鼠标悬停等。
若您想对悬停在HTML元素上执行一些操作,那个么浏览器为我们提供了这些方法,这些方法将在这些操作发生时调用
onHover
事件的回调名称。仅当您要执行函数时才需要括号。因为您正在传递对函数的引用…(函数定义,以便react可以在事件发生时执行它)因此:如果不使用括号,则不会调用函数/方法;特别是,通常在稍后调用回调,在这种情况下使用括号(在本例中,通过react在内部调用)实际上是调用函数的时候了。这是Javascript的一种行为:将函数作为参数传递。这篇文章已经清楚地解释了。您传递的是onHover
事件的回调名称。仅当您要执行函数时才需要括号。因为您传递的是对函数的引用。。。(函数定义,以便react可以在事件发生时执行)因此:当不使用括号时,不会调用函数/方法;特别是,通常稍后调用回调,在这种情况下使用括号(在本例中由react内部调用)实际上是时候调用函数了。这是Javascript的一种行为:将函数作为参数传递。