JavaScriptでいろいろコードを試しています。
ES5で考えています。

プロパティの入出力に対して、
アクセスメソッドを動かすことはできますか?

C#などではプロパティに対して
get/setなどのアクセスメソッドを
記述するのが普通ですが、

JavaScriptでは、プロパティという言葉自体が
公開されたフィールド変数、の意味で使われています。

なので、たとえば下記のように書くのですが

この時に、getRight() とよびださなければいけないのですが
かっこわるいというか
他言語からの移植などの場合にも困るので
アクセスメソッドは公開せずに
right プロパティをよみだしたときに
getRigthが裏で動いている、というようなことが
実現できないのか、と思っています。

ご存じの方おられましたら、教えてください。
よろしくおねがいします。

また、ES5は無理そうだとか、
ES6なら or TypeScriptなら、可能なども
おしえていただければ、助かります。

var common = {};
(function () {
  var _ = common;

  //Rect(top,left,height,width)
  _.Rect = function (top, left, height, width) {
    if (!(this instanceof common.Rect)) {
      return new common.Rect(top, left, height, width);
    }
    this.top = top;
    this.left = left;
    this.height = height;
    this.width = width;
  };
  _.Rect.prototype.getRight = function() {
    return this.left + this.width;
  };
  _.Rect.prototype.getBottom = function() {
    return this.top + this.height;
  };

}());

var rect1 = common.Rect(1,1,1,1);
というように使う