// ネイティブjavascriptオブジェクト var model = { title: 'this is Object.observe' }; // 監視用コールバックを定義 function observer(changes){ // changesのlengthを見てみる lf.log('changes length: ' + changes.length); changes.forEach(function(change, i){ lf.log("[change " + i + "]"); lf.log(change.name); // 変更があったpropertyの名前 lf.log(change.type); // 変更の種類 }); } // Object.observeでmodelを監視 // 変更があればobserverを呼び出す Object.observe(model, observer); // modelに新しいプロパティを追加してみる model.desc = 'this is description of model!' // model.titleを変更してみる model.title = 'chaaaaaaaaaange!'; // definePropertiesでプロパティ設定を変更してみる Object.defineProperties(model, {title: {enumerable:false}}); // model.titleを削除してみる delete model.title; // model自体を変更してみる mode = null;