返回

题目:在不改变下面代码的情况下,修改obj对象

var o = (function(){
  var obj = {
    a:1,
    b:2
  }
  return {
    get:function(k){
      return obj[k]
    }
  }
})()

解析:

var o = (function(){
  var obj = {
    a:1,
    b:2
  }
  return {
    get:function(k){
      return obj[k]
    }
  }
})()
let re = o.get("a")
console.log(`output->re`,re) //打印1
Object.defineProperty(Object.prototype,"this",{
  get:function(){
    return this
  }
})
const obj = o.get("this") //这里获取内部 obj 对象
obj.a =3
let result = o.get("a")
console.log(`output->result`,result) //打印3