Во-первых объяви объект через const, то что ты тянешь window связанно с тем что ты получаешь контекст окна браузера, а тебе что логично нужен контекст объекта. Вот код, попробуй на основе этого разобраться как работает this. const obj = { name: 'bob', prop: { age: 32 }, sayName() { console.log(this.name, 'FUNC-DECLARATION'); const arrow = () => console.log(this.name, 'INNER-ARROW-FUNC') function innerDecl() { console.log(this.name, 'INNER-FUNC-DECLARATION') } arrow() innerDecl() // }, sayNameArrow: () => { console.log(this.name, 'ARROW-FUNC') }, } // // const copyObj = obj copyObj.name = 'rick' obj.sayName(); obj.sayNameArrow();
т.е. если я буду вызывать стрелочные функции через call bind apply, то эти методы будут как-то по-другому работать?
Да, у стрелочных функций нет колл бинд и эплай
Это особенность стрелочных функций при поиске контекста в объектах, она работает именно так
Обсуждают сегодня