Метод call () функции JavaScript вызывает функцию с данным значением this и аргументами, предоставленными индивидуально.
Синтаксис call()
метода:
func.call(thisArg, arg1,… argN)
Вот func
функция.
call () Параметры
call()
Метод принимает в:
thisArg
- Стоимостьthis
предоставленного звонкаfunc
.arg1,… argN
(необязательно) - аргументы функции.
Возвращаемое значение из call ()
- Возвращает результат вызова функции с указанным
this
значением и аргументами.
Используя call()
, мы можем использовать функции, принадлежащие одному объекту, для назначения и вызова другому объекту.
Пример 1: Использование call ()
function greet() ( const string = `My name is $(this.firstName) $(this.secondName). I am $(this.age) years old.`; console.log(string); ) const human = ( firstName: "Judah", lastName: "Parker", age: 26, ); greet.call(human); // My name is Judah undefined. I am 26 years old.
Вывод
Меня зовут Иуда неопределенный. Мне 26 лет.
Пример 2: Использование call () для цепочки конструкторов
function Animal(name, age) ( this.name = name; this.age = age; ) function Horse(name, age) ( Animal.call(this, name, age); this.sound = "Neigh"; ) function Snake(name, age) ( Animal.call(this, name, age); this.sound = "Hiss"; ) const snake1 = new Snake("Harry", 5); console.log(snake1.name, snake1.age, snake1.sound); const horse1 = new Horse("Arnold", 8); console.log(horse1.name, horse1.age, horse1.sound);
Вывод
Гарри 5 шипение Арнольд 8 рж
Примечание . Разница между call()
и apply()
заключается в том, что call()
принимает список аргументов, а apply()
принимает один массив аргументов.
Рекомендуемая литература: функция JavaScript apply ()