彼らは財産のアクセサーです。これらは、プロパティを取得または設定したときに実行される効果的な関数です。
e.message; // getter
e.message = "foobar"; // setter
プロパティアクセサーを使用すると、これらはプロパティ値の単純な取得と設定以上のことを行います。オブジェクトのプロパティ記述子で確立されたコードを実行できるため、プロパティへのアクセスに副作用が生じる可能性があります。
例:
var o = Object.create(Object.prototype, {
foobar: {
get: function() { return "getter"; },
set: function(val) { alert("setter " + val); }
}
});
o.foobar; // "getter"
o.foobar = "raboof"; // alerts "setter raboof"
特定のプロパティに設定されているプロパティ記述子を表示するには、Object.getOwnPropertyDescriptor
...を使用します。
console.dir(Object.getOwnPropertyDescriptor(e, "message"));
Object
configurable: true
enumerable: false
get: function getter() { [native code] }
set: function setter() { [native code] }
これらの手法には、ECMAScript5でサポートされている実装が必要であることに注意してください。