const optionMergeStrategies = { } ; optionMergeStrategies . _my_option = function ( value ) { return value + 1 ; } ; const data = { _my_option : 1 , option : 1 } ; function reactive ( data ) { const hander = { get ( target , key , value ) { const v = Reflect . get ( target , key , value ) ; if ( typeof optionMergeStrategies [ key ] === 'function' ) { return optionMergeStrategies [ key ] ( v ) ; } return v ; } } ; return new Proxy ( data , hander ) ; } const proxy = reactive ( data ) ; proxy . _my_option = 10 ; proxy . option = 10 ; console . log ( proxy . _my_option , proxy . option ) ;