Код IT Загрузка примера кода…

JavaScript main.js
class Counter {
    constructor(startValue) {
        this.count = startValue;
    }

    increment() {
        this.count++;
        return this.count;
    }
    
    // Стрелочная функция в классе (редко используется для методов, если нужен динамический this)
    // Здесь this будет указывать на экземпляр класса, так как класс объявлен в глобальной области
    getCount = () => {
        return this.count;
    }
}

const counter = new Counter(10);

// Обычный метод
console.log(counter.increment()); // 11

// Привязка метода (если передать метод как callback)
const callback = counter.increment;
callback(); // Ошибка в strict mode: Cannot read properties of undefined (count)
// Это происходит потому, что при вызове callback() this становится undefined.

// Правильное использование стрелочного метода (классового поля)
console.log(counter.getCount()); // 11 (работает всегда, так как this захвачен при создании экземпляра)
class Counter {
    constructor(startValue) {
        this.count = startValue;
    }

    increment() {
        this.count++;
        return this.count;
    }
    
    // Стрелочная функция в классе (редко используется для методов, если нужен динамический this)
    // Здесь this будет указывать на экземпляр класса, так как класс объявлен в глобальной области
    getCount = () => {
        return this.count;
    }
}

const counter = new Counter(10);

// Обычный метод
console.log(counter.increment()); // 11

// Привязка метода (если передать метод как callback)
const callback = counter.increment;
callback(); // Ошибка в strict mode: Cannot read properties of undefined (count)
// Это происходит потому, что при вызове callback() this становится undefined.

// Правильное использование стрелочного метода (классового поля)
console.log(counter.getCount()); // 11 (работает всегда, так как this захвачен при создании экземпляра)