Answer

Answer

t.me/js_test

Ответ:

{ go: [Function: go] }

undefined

undefined

Объяснение:

В первом случае всё понятно, this внутри метода объекта указывает на сам объект. Второй случай работает по такому шаблону (expression).method() то есть сначала вычисляется значение левых скобок а потом это вызывается как обычная функция, без точки, поэтому this ссылается на глобальный объект. В последнем случае оператор || тоже мешает привязке this поэтому он теряется.

Код:

"use strict";

let obj, method;

obj = {
  go: function () {
    console.log(this);
  },
};

obj.go();
(method = obj.go)();
(obj.go || obj.stop)();

Report Page