Привязывание контекста через метод apply в JavaScript

Давайте теперь рассмотрим метод apply для привязывания контекста. Он работает практически так же, как и метод call. Разница заключается в том, что в apply параметры передаются в виде массива, а не перечисляются через запятую. В зависимости от задачи бывает удобен то один, то другой метод.

Вот пример передачи параметров в метод apply:

javascriptfunc.apply(elem, [param1, param2]);
Задание 1

Пусть дан следующий код:

html<input id="elem" value="hello">
javascriptlet elem = document.querySelector('#elem');

function func(surname, name) {
  console.log(this.value + ', ' + surname + ' ' + name);
}

func(); // тут должно вывести 'hello, John Smit'

Добавьте в последнюю строчку метод apply так, чтобы на экран вывелось 'hello, John Smit'. Слово 'hello' должно взяться из value инпута, а 'John' и 'Smit' должны быть параметрами функциями.