1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 15x 8270x 8270x 1x 1x 1x 8270x 15x | export default function lazyDefine( obj, prop, fn ) { const define = value => Object.defineProperty( obj, prop, { value, enumerable: true, writable: true } ); Object.defineProperty( obj, prop, { configurable: true, enumerable: true, get() { const ret = fn(); define( ret ); return ret; }, set( val ) { define( val ); } } ); return obj; } |