Comments 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? Где статические функции? Замыкания?
Sign up to leave a comment.
Как работают this, call, apply и bind в Java Script: разбираемся на примерах