【发布时间】:2019-10-17 15:57:38
【问题描述】:
我正在尝试理解 javascript 中的 call 和 apply 方法。但我不明白为什么要使用它。
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"John",
lastName: "Doe"
}
var person2 = {
firstName:"Mary",
lastName: "Doe"
}
var x = person.fullName.call(person1);
我可以不使用 call 和 apply 来做这个例子。
var person = {
fullName: function(firstName, lastName) {
return firstName + " " + lastName;
}
}
var person1 = {
firstName:"John",
lastName: "Doe"
}
var person2 = {
firstName:"Mary",
lastName: "Doe"
}
var x = person.fullName(person1.firstName, person1.lastName);
或者我不明白这个例子。
function Product(name) {
this.name = name;
}
function Pizza(name) {
Product.call(this,name);
}
const pizza = new Pizza("Margherita");
当我想到这个例子时,我可以用原型来做。为什么使用呼叫或申请?谢谢
【问题讨论】:
-
@Rup 是正确的
-
好的,我修好了。现在可以查了吗?
-
好吧,我完全改变了样本。我想知道的是我应该在哪里实际使用它? @Rup
-
您使用
.call,因此方法的this上下文在其原始上下文之外的另一个上下文中被调用。顺便说一句,如果你只想要一个new Product,在最后一个例子中使用原型也是一种浪费。
标签: javascript apply call