随着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意味着this的firstName属性。
this.lastName意味着this的lastName属性。
在 JavaScript 中,this
关键字指的是对象。
哪个对象取决于如何this
正在被调用(使用或调用)。
这个this
关键字根据其使用方式指代不同的对象:
在对象方法中,this 指的是对象。 |
独自的,this 指的是全局对象。 |
在一个函数中,this 指的是全局对象。 |
在函数中,在严格模式下,this 是undefined 。 |
在一次活动中,this 指的是元素收到该事件的。 |
方法如call() ,apply() , 和bind() 可以参考this 到任何物体。 |
这个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()
方法可以接受参数:
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");
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!