Pull to refresh

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.

Articles