Привязка к методу внутри объекта. Дает неожиданные результаты - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался вызвать связывание внутри JavaScript объекта в node.js примерно так.

var obj = {
  m: function () {
    console.log(this)
  }.bind(obj),
}

Когда я звонил obj.m(), я ожидал this внутренняя функция m должна быть obj. Но глобальный объект печатается.

Может кто-нибудь объяснить, почему это происходит.

1 Ответ

1 голос
/ 14 апреля 2020

Литерал объекта должен быть полностью оценен до того, как ему присвоено obj.

Во время вызова bind(obj) значение obj все еще undefined.

Следовательно, глобальный объект связан.

...