// define global state change callback PropState.prototype.onChange = function (state, key, value) { console.log('Object State updated ', state); }; // initialize all states var propState = new PropState( {name: 'a', value: 1, onChange: function (key, value) { console.log(key+' updated', value); }}, {name: 'b', value: 2, onChange: function (key, value) { console.log(key+' updated', value); }}, {name: 'c', value: 3} ); console.log(propState.a); propState.a = 3; // change state to invoke its callback console.log(propState.a); // get all states for (var stateName in propState) { console.log(propState[stateName]); }