有人可以帮我理解原型属性吗?我不明白原型属性是函数的属性还是函数内部的属性。
让我们说我们创建了以下构造函数,Food。此时,函数Food()具有属性Food.prototype。由于Food是Object的一个实例,因此这意味着Obect.prototype是使用Food()创建的所有对象的原型属性。
function Food() {}
然后创建另一个构造函数Pizza。 Pizza有Pizza.prototype属性。
function Pizza(toppings) {
this.toppings = toppings;
}
然后我们通过将Pizza的原型属性设置为Food的一个实例,使Pizza继承自Food。 Pizza的原型属性现在是Food.prototype,因为Food是披萨的父母。
Pizza.prototype = new Food();
然后我们创建一个Pizza
的实例var myPizza = new Pizza("pepperoni");
myPizza还有一个继承自Pizza的原型属性吗?如果是这样,myPizza.prototype == Object.prototype?什么是Obejct.prototype?它是Object()的属性吗?只有函数有原型属性吗? Object.prototype是一个对象吗? Pizza.prototype是否指的是创建Pizza构造函数的整个函数?这个函数本身就是一个对象吗?
function Pizza(toppings) {
this.toppings = toppings;
}
或者Pizza.prototype只是引用了Pizza()范围内的内容?
this.toppings = toppings;
Pizza.toppings是Pizza.prototype的属性吗?但是,Pizza.prototype不是Pizza()的财产吗?浇头只是使用Pizza构造函数创建的对象的属性吗?而Pizza.prototype是Pizza构造函数的属性吗?
目前的原型链如下:
myPizza - > Pizza.prototype - > Food.prototype - > Object.prototype中