【问题标题】:What does :: (double colon) mean in JavaScript? [duplicate]在 JavaScript 中 ::(双冒号)是什么意思? [复制]
【发布时间】:2016-12-23 00:38:08
【问题描述】:

我在这样的 react 应用中有一些 JSX 代码:

...
 _renderSignOutLink() {
    if (!this.props.currentUser) {
      return false;
    }

    return (
      <a href="#" onClick={::this._handleSignOutClick}><i className="fa fa-sign-out"/> Sign out</a>
    );
...

在调用函数之前,双冒号::是什么意思?

【问题讨论】:

  • 不是 JSX 的一部分,而是 JS 的一部分
  • 这不会在每次调用 render 时创建一个新的函数实例(根据您的状态变化可能会创建很多次?)

标签: javascript reactjs


【解决方案1】:

::a proposed binding operator,它脱糖成一个绑定函数:

::foo.bar
// becomes
foo.bar.bind(foo)

这在 React(和任何其他事件处理程序)中很有用,因为这意味着当稍后调用事件处理程序时,this 将具有预期值(类的实例)。

【讨论】:

猜你喜欢
  • 2011-01-17
  • 2019-09-14
  • 1970-01-01
  • 2013-05-18
  • 1970-01-01
  • 2021-03-04
  • 2018-11-21
  • 2014-07-28
相关资源
最近更新 更多