js中Function.prototype.call是什么

犀牛前端部落 分类:面试题

call方法调用一个函数,在调用时指定该函数的this或“owner”对象。

const details = {
  message: 'Hello World!'
};

function getMessage(){
  return this.message;
}

getMessage.call(details); // returns 'Hello World!'

这个方法的工作原理类似Function.prototype.apply。唯一不同的是我们传递参数的方式。在调用中,对于每个实参,直接传递用逗号分隔它们的参数。

const person = {
  name: "Marko Polo"
};

function greeting(greetingMessage) {
  return `${greetingMessage} ${this.name}`;
}

greeting.call(person, 'Hello'); // returns "Hello Marko Polo!"

该系列为面试题系列,俺的答案可能也存在瑕疵或不正确的地方,欢迎大家踊跃讨论。

回复

我来回复
  • 暂无回复内容