📜  Javascript函数call()

📅  最后修改于: 2020-09-27 06:16:50             🧑  作者: Mango

JavaScript函数调用()方法调用给定的单独设置这个值和参数的函数 。

call()方法的语法为:

func.call(thisArg, arg1, ... argN)

在这里, func是一个函数。


call()参数

call()方法采用:

  • thisArg为对func的调用提供的this的值。
  • 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.

输出

My name is Judah undefined. I am 26 years old.

示例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);

输出

Harry 5 Hiss
Arnold 8 Neigh

注意:之间的差值call()apply()call()接受一个参数列表,而apply()接受的参数的单个阵列。


推荐读物: JavaScript函数apply()