随着apply()
方法,您可以编写一个可用于不同对象的方法。
这个apply()
方法类似于call()
方法(前一章)。
在这个例子中全名的方法人是应用在人1:
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// This will return "Mary Doe":
person.fullName.apply(person1);
区别在于:
这个call()
方法接受参数分别地。
这个apply()
方法将参数作为数组。
如果您想使用数组而不是参数列表,则 apply() 方法非常方便。
这个apply()
方法接受数组中的参数:
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName + "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);
与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");
您可以使用以下命令找到最大的数字(在数字列表中)Math.max()
方法:
自从 JavaScript数组没有 max() 方法,您可以应用Math.max()
方法代替。
第一个参数(空)并不重要。本例中未使用它。
这些示例将给出相同的结果:
在 JavaScript 严格模式下,如果第一个参数apply()
方法不是对象,它成为被调用函数的所有者(对象)。在"non-strict"模式下,它成为全局对象。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!