To mocno utrudnia pisanie poprawnego kodu ludziom nieprzyzwyczajonym do JavaScriptu, ale za to do innych języków obiektowych.

Jak ktoś jest przyzwyczajony, to też utrudnia to życie bo trzeba cały czas mieć to z tyłu głowy tego nieszczęsnego this. I potem są dylematy, czy lepiej w React zrobić tak:

Kopiuj
onClick={this.handleClick.bind(this)}

czy tak

Kopiuj
onClick={(e) => this.handleClick(e)}

czy może tak (w konstruktorze):

Kopiuj
this.handleClick= this.handleClick.bind(this);

i potem się ludzie kłócą, który styl jest najlepszy. A wszystko po to, żeby nie utracić zmiennej this w metodzie (która przestaje być "metodą" gdzieś po drodze i zaczyna być zwykłą funkcją).

Chociaż na szczęście istnieje wiele sposobów na uniknięcie używania this w ogóle (np. tworzenie obiektów za pomocą domknięć, albo decoupling funkcji od obiektów itp.), chociaż to znowu sprawia, że kod staje się jeszcze bardziej odległy od tego, do czego się przyzwyczaili ludzie z innych języków.