我正在研究原型对象,我对以下内容有点困惑
//my constructor function
function Circle(r) {
this.radius = r;
this.PI = 3.14;
}
function areaCalculator() {
this.area = this.PI * this.radius * this.radius;
}
function circumferenceCalculator() {
this.circumference = 2* this.PI * this.radius;
}
因为我们的函数是一个对象,并且有一个名为原型的属性,所以可以向这个原型对象添加属性和方法,这些属性和方法将自动适用于我们使用函数构造函数创建的所有自定义对象。
Circle.prototype.areaCalculator = areaCalculator; //adding function
Circle.prototype.color = "Red"; //adding property
var circle1 = new Circle(5);
circle1.areaCalculator();
console.log(circle1.radius);//5
console.log(circle1.area); //78.5
console.log(circle1.color);//Red
如果我理解正确,所有使用 Circle 的对象都将引用相同的颜色变量,除非它们被明确设置。它是否正确?
另外,在不使用原型的情况下执行以下操作意味着什么
Circle.circumferenceCalculator = circumferenceCalculator;
Circle.color = "Red";
以上两种说法是否正确?