目录

JavaScript 函数 call()


方法重用

随着call()方法,您可以编写一个可用于不同对象的方法。


所有函数都是方法

在 JavaScript 中,所有函数都是对象方法。

如果函数不是 JavaScript 对象的方法,那么它就是全局对象的函数(请参阅上一章)。

下面的示例创建一个具有 3 个属性的对象:firstName、lastName、fullName。

示例

const person = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}

// This will return "John Doe":
person.fullName();  
亲自试一试 »

在上面的例子中,this指的是person

this.firstName意味着thisfirstName属性。

this.lastName意味着thislastName属性。


什么是this

在 JavaScript 中,this关键字指的是对象

哪个对象取决于如何this正在被调用(使用或调用)。

这个this关键字根据其使用方式指代不同的对象:

在对象方法中,this指的是对象
独自的,this指的是全局对象
在一个函数中,this指的是全局对象
在函数中,在严格模式下,thisundefined
在一次活动中,this指的是元素收到该事件的。
方法如call(),apply(), 和bind()可以参考this任何物体

笔记

this不是变量。这是一个关键字。您无法更改的值 this

也可以看看:

JavaScriptthis教程



JavaScript call() 方法

这个call()method 是预定义的 JavaScript 方法。

它可用于调用(调用)以所有者对象作为参数(参数)的方法。

call(),一个对象可以使用属于另一个对象的方法。

这个例子调用了全名人的方法,用在人1

示例

const person = {
   fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
const person1 = {
  firstName:"John",
  lastName: "Doe"
}
const person2 = {
  firstName:"Mary",
  lastName: "Doe"
}

// This will return "John Doe":
person.fullName.call( person1);

亲自试一试 »

这个例子调用了全名人的方法,用在人2

示例

const person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
const person1 = {
  firstName:"John",
  lastName: "Doe"
}
const person2 = {
  firstName:"Mary",
  lastName: "Doe"
}

// This will return "Mary Doe"
person.fullName.call( person2);

亲自试一试 »

带参数的 call() 方法

这个call()方法可以接受参数:

示例

const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

const person1 = {
  firstName:"John",
  lastName: "Doe"
}

person.fullName.call(person1, "Oslo", "Norway");

亲自试一试 »