Más contenido relacionado
La actualidad más candente (19)
Similar a プロパティディスクリプタとその拡張ライブラリ (14)
Más de Yusuke Muraoka (9)
プロパティディスクリプタとその拡張ライブラリ
- 5. Object.defineProperty(foo, ‘bar’, {
get: function() {
return ‘baz’;
},
set: function(v) {
console.log(v);
}
});
foo.bar
‘baz’
foo.bar = ‘qux’
qux // console.log
‘qux’
foo.bar
‘baz’
Property
Descriptor?
• オブジェクトごとの
プロパティの挙動を
記述
• value
• writable
• enumerable
• configurable
• setter/getter
- 9. BeautifulProperties.Hookable.define(
object,
‘key’,
{
beforeGet: function () { console.log(‘beforeGet’); },
afterGet: function (v) { console.log(‘afterGet’, v); },
beforeSet: function (v, p) { console.log(‘beforeSet’, v, p); },
afterSet: function (v, p) { console.log(‘afterSet’, v, p); }
}
);
object.key
beforeGet // console.log
afterGet undefined // console.log
undefined
object.key = 10
beforeSet 10 undefined // console.log
afterSet 10 undefined // console.log
10
Hookable
• getter/setterの直前
と直後にそれぞれ
フックを仕込める
• 値の変更も