我正在努力了解"这个"当使用call作为构造函数链时,它可以工作。
来自MDN的以下片段:
function Product(name, price) {
this.name = name;
this.price = price;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
}
var cheese = new Food('feta', 5);
不应该是声明
Product.call(this, name, price);
是
this = Product.call(this, name, price);
(编辑:我知道&#34;这个&#34;只读,我只想说明在我的脑海里应该有一个分配操作&#34;这个&#34; of Food()。)< / p>
据我所知,使用new at:
var cheese = new Food('feta', 5);
创建一个新的空对象,指向&#34;这个&#34;在执行Food()函数期间。
然后我们使用&#34; this&#34;来调用Product()函数。宾语。 Product()将返回修改后的此对象,但它不会保存在Food()
中的任何位置那么&#34;这&#34;在食物()正在更新与返回&#34;这&#34;来自Product()