理解:js数据代理

一个对象代理另一个对象的读写操作,通过Object.defineProperty实现

	// 被代理对象
  let user1 = {
    name:'李四',
    sex:'男'
  }
	// 代理者
	let user2 = {
		name:'张三',
		sex:'女'
	}
	// 给user2定义一个opt属性去代理user1
  Object.defineProperty(user2,'opt',{
    // 当读取opt属性时,get函数(getter)会被调用,且返回值
    get() {
      console.log("读取了opt值是",user1.name)
      return user1.name
    },
    // 当修改opt属性时,set函数(setter)会被调用,且会收到修改的值
    set(value) {
      console.log("修改了opt值是",value)
      user1.name = value
    }
  })

打开浏览器进行如下操作:
理解:js数据代理_第1张图片

你可能感兴趣的:(前端博文,javascript,前端,开发语言)