Создание curl callout для APEX на основе моего кода

Оператор запятой оценивает каждый из своих операндов (слева направо) и возвращает значение последнего операнда.

console.log((1, 2)); // Returns 2 in console
console.log((a = b = 3, c = 4)); // Returns 4 in console

Итак, посмотрим пример:

var a = {
  foo: function() {
    console.log(this === window);
  }
};

a.foo(); // Returns 'false' in console
(0, a.foo)(); // Returns 'true' in console

Теперь в foo метод this равен a (потому что foo присоединен к a). Поэтому, если вы вызываете a.foo(), он будет записывать false в консоли.

Но если вы звонили (0, a.foo)(). Выражение (0, a.foo) будет оценивать каждый из его операндов (слева направо) и возвращает значение последнего операнда. Другими словами, (0, a.foo) эквивалентен

function() {
  console.log(this === window);
}

. Поскольку эта функция больше не привязана ни к чему, ее this является глобальным объектом window. Вот почему он записывает true в консоли при вызове (0, a.foo)().

0
задан slack king 16 January 2019 в 03:54
поделиться