Методи call

Методи call барои даъват кардани функсия бо контексти муайянкардашуда иҷозат медиҳад. Параметри якуми метод бояд контексти функсия бошад, ва параметрҳои дигар - параметрҳои функсия бошанд.

Синтаксис

javascriptфунксия.call(контеқст, параметр1, параметр2...);

Намуна

Бигзор мо як инпут дорем:

html<input id="elem" value="матн">

Бигзор ҳамчунин функсияе дода шудааст, ки се параметр мегирад:

javascriptfunction func(param1, param2, param3) {
  console.log(this.value + param1 + param2 + param3);
}

Биёед функсияи худро чунон даъват кунем, ки this дар дохили функсия бо инпути мо баробар бошад, ва дар ҳамон ҳол параметрҳои рақамҳои 1, 2 ва 3-ро ба он бифиристем:

javascriptlet elem = document.querySelector('#elem');
func.call(elem, 1, 2, 3);

Намуна

Бигзор функсия параметр намегирад:

javascriptfunction func() {
  console.log(this.value);
}

Дар ин ҳолат, вақте ки ин функсия тавассути call даъват карда мешавад, кифоя аст танҳо параметри аввалро бо контеқст бифиристед:

javascriptlet elem = document.querySelector('#elem');
func.call(elem);

Ҳамчунин бубинед

  • методи apply,
    ки функсияро бо контеқст даъват мекунад
  • методи bind,
    ки контекстро ба функсия мепайвандад