Задачи для решения

Работа с call

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

<input id="elem" value="привет">
var elem = document.getElementById('elem');

function func() {
	alert(this.value);
}

func(); //тут должно вывести value инпута

Добавьте в последнюю строчку метод call() так, чтобы на экран вывелось value инпута, лежащего в переменной elem.

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

<input id="elem" value="привет">
var elem = document.getElementById('elem');

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

func(); //тут должно вывести 'привет, Иванов Иван'

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

Работа с apply

Переделайте решение предыдущей задачи так, чтобы место метода call() был метод apply().

Работа с bind

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

<input id="elem" value="привет">
var elem = document.getElementById('elem');

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

//Тут напишите конструкцию с bind()

func('Иванов', 'Иван'); //тут должно вывести 'привет, Иванов Иван'
func('Петров', 'Петр'); //тут должно вывести 'привет, Петров Петр'

Напишите в указанном месте конструкцию с методом bind() так, чтобы this внутри функции func всегда указывал на инпут из переменной elem.