Разница между аксессорами и мутаторами в JavaScript и Java

В объекте 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 было бы странно не иметь геттеров и сеттеров, как во втором.

  1. Когда я должен использовать геттеры/сеттеры в JavaScript?
  2. Будет ли чрезмерной нагрузка на ресурсы, если я непреклонно буду использовать геттеры и сеттеры для всех моих объектов-конструкторов JavaScript?

person Harry    schedule 06.05.2012    source источник
comment
Проверьте эту статью ссылка   -  person Subhrajyoti Majumder    schedule 06.05.2012


Ответы (1)


Причина предоставления средств доступа и мутаторов заключается в целях инкапсуляции, а не для того, чтобы это выглядело правильно. Это объектная ориентация. Если вы хотите применить тот же принцип к JavaScript, сделайте это.

person Oh Chin Boon    schedule 06.05.2012