ES5以降、Object.definePropertyを使用してゲッターとセッターを定義することができました。あなたのES6コードは、次のES5コードのシンタックスシュガー本質的である:
:
function Job () {
this.start = new Date;
}
Object.defineProperty(Job.prototype, 'age', {
get: function () { return new Date - this.start; }
});
、一部のエンジンがあなたの機能を複製するために、このように使用されただろうなObject.prototype.__defineGetter__などゲッターのための非標準のサポートを、持っていた前に、
Job.prototype.__defineGetter__('age', function () {
return new Date - this.start;
});
SpiderMonkeyのも、それ以前にそれを行うには、いくつかの他の方法を持っていた:これらの方法の
Job.prototype.age getter = function() {
return new Date - this.start;
};
// or, this one, which declares age as a variable in the local scope that acts like a getter
getter function age() { ... };
なしを除いて、今日使用すべきではありませんはまだES6で非常に便利です。
メソッドではなく、ATTRIBUTE *と呼ばれるのではなく、「プロパティ」と呼ばれます。 –
@torazaburo:余分な空白を削除しました;) –