在 JavaScript Circle 对象中,我可以编写如下内容:
var Circle = function (xCoordinate, yCoordinate, radius) {
var x = xCoordinate,
y = yCoordinate,
r = radius;
this.getX = function () {
return x;
}
this.getY = function () {
return y;
}
this.getRadius = function () {
return r;
}
}
而在 Java 中,我会编写以下内容:
public class Circle {
private x, y, radius;
public Circle(xCoordinate, yCoordinate, radius) {
this.x = xCoordinate;
this.y = yCoordinate;
this.radius = radius;
}
public int getX() {
return this.x;
}
//and so on...
}
但是我已经看到生产标准 JavaScript 代码甚至不关心访问器和修改器,如第一个示例所示,而在 Java 中,没有像第二个示例中那样具有 getter 和 setter 会很奇怪。
提供访问器和修改器的原因是为了封装目的,而不是为了看起来正确。这就是面向对象。如果您希望将相同的原则应用于 JavaScript,那就这样做吧。
在java中,Accessor方法用于访问对象的属性。换句话说,Accessor 方法充当中介者,通过类或其他类外部的方法访问私有变量。因此,我们可以说访问器方法用于提供封装。 Accessor 方法也称为 getter 方法。
在java中,Mutator方法用于改变对象的属性。换句话说,Mutator 方法初始化或更改类的实例变量或类的私有变量的值。因此,我们可以说mutator方法是用来提供封装的。 Mutator 方法也称为 Setter 方法或修饰符。