index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // 深层监听
  2. let object = {
  3. a: "123",
  4. c: 1,
  5. d: ['a', { e: 45, f: true }],
  6. g: false
  7. }
  8. function observeKey (obj, key) {
  9. let value = obj[key];
  10. Object.defineProperty(obj, key, {
  11. get () {
  12. console.log("get")
  13. return value
  14. },
  15. set (newValue) {
  16. console.log("set")
  17. value = newValue
  18. }
  19. })
  20. }
  21. // 浅层监听
  22. // function observeKey (obj, key) {
  23. // let value = obj[key];
  24. // Object.defineProperty(obj, key, {
  25. // get () {
  26. // console.log("读取属性", value)
  27. // return value
  28. // },
  29. // set (newValue) {
  30. // console.log("设置属性", newValue)
  31. // value = newValue
  32. // }
  33. // })
  34. // }
  35. // let obj = { a: 1, b: 2 };
  36. // observeKey(obj, 'a');
  37. // console.log(obj)
  38. // console.log(obj.a);
  39. // obj.a = 250
  40. // console.log(obj.a, obj)
  41. // let _obj = { c: 1, d: 2 };
  42. // let proxy = new Proxy(_obj, {
  43. // get (target, key) {
  44. // return "应该是" + target[key]
  45. // },
  46. // set (target, key, value) {
  47. // target[key] = value
  48. // }
  49. // })
  50. // console.log(_obj, _obj.c)
  51. // console.log(proxy, proxy.c);
  52. // _obj.a = 2;
  53. // proxy.b = 3;
  54. // console.log(proxy, _obj)