var o = (function() { var obj = { name: 'obj', age: 12 } return { get(name) { return obj[name] } } })() Object.defineProperty(Object.prototype, 'abc', { get() { return this } }) o.get('abc').name = '22222' console.log(o.get('name'))