JavaScript 和 Java 中访问器和修改器之间的区别

问题描述 投票:0回答:2

在 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 会很奇怪。

  1. 我什么时候应该在 JavaScript 中使用 getters/setters?
  2. 如果我坚决对所有 JavaScript 构造函数对象使用 getter 和 setter,是否会对资源造成太大压力?
java javascript setter getter
2个回答
0
投票

提供访问器和修改器的原因是为了封装目的,而不是为了看起来正确。这就是面向对象。如果您希望将相同的原则应用于 JavaScript,那就这样做吧。


0
投票

在java中,Accessor方法用于访问对象的属性。换句话说,Accessor 方法充当中介者,通过类或其他类外部的方法访问私有变量。因此,我们可以说访问器方法用于提供封装。 Accessor 方法也称为 getter 方法。

在java中,Mutator方法用于改变对象的属性。换句话说,Mutator 方法初始化或更改类的实例变量或类的私有变量的值。因此,我们可以说mutator方法是用来提供封装的。 Mutator 方法也称为 Setter 方法或修饰符。

© www.soinside.com 2019 - 2024. All rights reserved.