0

Вот пример кода

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      counter: this.props.counter
    }

incCounter = () => { if (this.state.counter < 50) { this.setState(state => ({ counter: state.counter + 1 })) } }

Почему здесь this ссылается на App или тут

resetCounter = () => {
    this.setState({
      counter: this.props.counter
    })
  } 

Как работает это правило? Эти функции находятся не внутри App но всё равно ссылаются на него.

CrazyElf
  • 71,194
  • Почему они не внутри App? Они внутри же. – CrazyElf Oct 13 '23 at 10:41
  • Значит весь код внутри App? – crecer Yt Oct 13 '23 at 10:50
  • @CrazyElf это так? – crecer Yt Oct 13 '23 at 10:51
  • Я JavaScript не очень знаю, но судя по всему так. Это же всё внутри описания класса App происходит. – CrazyElf Oct 13 '23 at 10:54
  • 1
    Вот статеечка на тему this в JS... https://doka.guide/js/function-context/ – ksa Oct 13 '23 at 11:25
  • 1
    потому что стрелочная функция) – Gelloiss Oct 13 '23 at 12:17
  • 1
    На класс или на экземпляр класса? Это разные вещи – andreymal Oct 13 '23 at 12:20
  • 1
    Кроме того, функция incCounter находится очень даже внутри класса App – andreymal Oct 13 '23 at 12:20
  • Всем спасибо,пусть вас хранит бог,я ошибался только из-за того что не знал что весь код находится внутри App поэтому и не понимал в чём проблема – crecer Yt Oct 13 '23 at 16:08
  • Более того, в этом примере incCounter вообще внутри конструктора находится… – Alexey Ten Oct 13 '23 at 16:53

0 Answers0