我了解调用(和应用)方法在以下示例中的工作原理。
var Bob = {
name: "Bob",
greet: function() {
alert("Hi, I'm " + this.name);
}
}
var Alice = {
name: "Alice",
};
Bob.greet.call(Alice); // Hi, I'm Alice
据我了解,上面发生的事情是他在 Alice 的范围内调用了 Bob 对象的 greet 方法。
有人可以在下面的示例中解释幕后发生的事情,其中调用方法用于允许继承的构造函数吗?
function Product(name, price) {
this.name = name;
this.price = price;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
}
var chicken = new Food('chicken','40');
console.log(chicken); //{ name= "chicken", price="40", category="food"}
我无法在第一个示例和第二个示例之间建立联系,其中第一个示例调用方法是在一个正在执行某些操作(警报)的函数上调用的,而在第二个示例中,调用方法用于构造函数正在初始化一些属性。