JavaScript の Object.defineProperty 関数 (および Object.defineProperties 関数) は、オブジェクトにプロパティを動的に定義します。 この関数の引数 descriptor の get 属性と set 属性に、プロパティへのアクセサーとなる関数を指定できるわけですが、ここに任意の処理を追加できます。 この仕組みを利用して、Observable (監視可能) なオブジェクトを作ることができます。 ここでは、Observable なオブジェクトとは、プロパティ値の変更を通知するオブジェクトを指すこととします。 jQuery を活用して、次のように実装できます。 var obj = {}; Object.defineProperty(obj, "prop1", createDescriptor("prop1")); function cre