请问js代码中代码()与(e)有什么区别吗?作用涵义等各个方面

题目来源及自己的思路

太短,谷歌无法搜索到

相关代码

http://taro-docs.jd.com/taro/...

class Title extends Component{

  handleClick = (index) => (e) => {
    e.stopPropagation()
    this.setState({
      currentIndex: index
    })
  }

  render() {
    const { currentIndex } = this.props;
    return (
      {/* 调用 `this.handleClick(currentIndex)` 会返回一个函数,这个函数可以访问到 `currentIndex` 同时也能满足 `onClick` 的签名 */}
      <View onClick={this.handleClick(currentIndex)}>
      </View>
    )
  }
 }
阅读 2.5k
3 个回答

其实这儿就是一个高阶函数的经典运用。

//外层的函数对应你代码的handleClick
function hoc(index){
    //内层返回的函数对应的就是带e参数的事件执行函数
    return function click(event){
        console.log(index,event);
    }
}

这儿使用高阶函数的目的是为了传递index索引值

现在回答你的问题,有参数与没参数的区别。如果你的事件执行函数使用到了event参数那么你就需要有参数,没有用到这个参数自然也就不需要带这个参数了。比如你代码里面阻止事件冒泡就需要带参数。

新手上路,请多包涵

有的方法()中必须要指定传入的参数。这时候就要加上e。
但有的方法是二次封装,默认会传入e,这种时候()中可以不传。

这个View是自己的组件么? 首先加括号说明render的时候就执行这个函数 而且handleClick里面不执行吧
如果是插件 应该是记录你传的参数 然后和事件对象一起返回?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题