Что означает: (двойной двоеточие) в JavaScript?
У меня есть код JSX в таком приложении:
...
_renderSignOutLink() {
if (!this.props.currentUser) {
return false;
}
return (
<a href="#" onClick={::this._handleSignOutClick}><i className="fa fa-sign-out"/> Sign out</a>
);
...
Что означает двойная двоеточие, ::
, перед вызовом функции?
Ответы
Ответ 1
::
- предлагаемый оператор привязки, который desugars в связанную функцию:
::foo.bar
// becomes
foo.bar.bind(foo)
Это полезно в React (и любых других обработчиках событий), потому что это означает, что this
будет иметь ожидаемое значение (экземпляр класса), когда обработчик события будет вызван позже.