Комментарии 4
По оформлению кода немного занудства: в первом примере с this вы передаёте в функцию лишние на этом этапе параметры. Вы их пока никак не используете внутри функции. Ну и дальше в примере с apply почему-то закомментированный код. И пример выводится без подсветки, серым.
Примеры вышли чересчур синтетическими. Из них не совсем понятно, в каких случаях нужны call
/apply
/bind
в реальной жизни.
Исходя из этих примеров, можно сказать, что
this
— это ссылка на объект, внутри которого находится это ключевое слово.
Так думать опасно:
Welcome to Node.js v19.1.0.
Type ".help" for more information.
> var foo = { prop: 123, f: function () { return this.prop } } // this "внутри" foo
undefined
> var bar = { prop: 456 }
undefined
> bar.f = foo.f
[Function: f]
> bar.f() // но вернула bar.prop
456
Проще и правильнее всего думать о this
как о том объекте, на котором метод вызвали. Несколько более глубокое объяснение уже есть на Хабре.
Мало!
Где классы? Где prototype? Где статические функции? Замыкания?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как работают this, call, apply и bind в Java Script: разбираемся на примерах