【const = () => {}和function () {}的区别,箭头函数和常规函数】

我们来看一下const App = () => {}function App() {}的区别:

  • const App = () => {}:这是一个箭头函数(arrow function)定义。箭头函数是ES6引入的一种新的函数语法,它提供了一种更简洁的方式来定义函数。箭头函数不会创建自己的this上下文,所以它总是从定义它的上下文中继承this。箭头函数没有自己的arguments对象,因此使用arguments是不正确的。如果需要访问组件的props,可以直接在参数列表中定义它们。
  • function App() {}:这是一个常规函数定义。在类组件中,通常使用这种语法来定义组件。常规函数有自己的this上下文,所以它不从外部作用域继承this。常规函数也有自己的arguments对象。

那react中,const function = ()=>{}和function(){},使用this.function能在别处被调用到吗
在React中,如果在类组件中定义了一个函数,无论是使用箭头函数 () => {} 还是普通函数 function() {},都可以在组件的其他部分调用它。

但是,如果是在组件的实例方法中定义一个函数,并且使用 this 关键字(这在常规JavaScript类中是常见的,但在React类组件中并不常见),那么这个函数只能在组件的实例方法内部被调用,不能从外部调用。

例如,以下是在React类组件中定义函数的方式:

class MyComponent extends React.Component {
  myFunction = () => {
  }

  render() {
    return 
    	<button onClick={this.myFunction}>
    		Click me
    	</button>;
  }
}

此处myFunction 是一个类组件中的实例方法,可以通过 this 来调用。在 render 方法中,创建了一个按钮,当按钮被点击时,它会调用 this.myFunction()

如果想从外部调用这个函数,可以考虑将其定义为组件的静态方法:

class MyComponent extends React.Component {
  static myStaticFunction() {
  }

  render() {
    return 
    	<button onClick={MyComponent.myStaticFunction}>
    		Click me
    	</button>;
  }
}

这个myStaticFunction 是一个静态方法,可以通过组件的类名直接调用,而不需要通过实例。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值