1. let numbers = [0, 1, 2];
    2. numbers = new Proxy(numbers, {
    3. get(target, prop) {
    4. return target[prop] ? target[prop] : 0;
    5. },
    6. set(target, prop, value) {
    7. if (typeof value === 'number') {
    8. target[prop] = value;
    9. return true;
    10. } else {
    11. return false;
    12. }
    13. },
    14. });
    15. numbers[4] = 4;
    16. // numbers[9] = '9'; //Error: 'set' on proxy: trap returned falsish for property '9'
    17. console.log(numbers[1]);
    18. console.log(numbers[78]);
    1. let numbers = [0, 1, 2];
    2. numbers = new Proxy(numbers, {
    3. get(target, prop) {
    4. return Reflect.get(target, prop);
    5. },
    6. set(target, prop, value) {
    7. if (typeof value === 'number') {
    8. Reflect.set(target, prop, value);
    9. return true;
    10. } else {
    11. return false;
    12. }
    13. },
    14. });
    15. numbers[4] = 4;
    16. console.log(numbers[1]);
    17. console.log(numbers[4]);
    1. // 一个属性不能同时数据属性和
    2. let _name = 'sfd';
    3. let A = {
    4. get name() {
    5. return _name;
    6. },
    7. set name(name) {
    8. _name = name;
    9. this.getName();
    10. },
    11. getName: function () {
    12. console.log(this.name);
    13. },
    14. };
    15. A.name = 8080;
    16. const A = {
    17. getName: function () {
    18. console.log(this.name);
    19. },
    20. };
    21. Object.defineProperty(A, 'name', {
    22. set(value) {
    23. this._name = value;
    24. this.getName();
    25. },
    26. get() {
    27. return this._name;
    28. },
    29. });
    30. A.name = 'Joy';
    31. const _A = {
    32. name: 'sfd',
    33. getName: function () {
    34. console.log(this.name);
    35. },
    36. };
    37. const A = new Proxy(_A, {
    38. get(target, prop) {
    39. return Reflect.get(target, prop);
    40. },
    41. set(target, prop, value) {
    42. Reflect.set(target, prop, value);
    43. target.getName();
    44. return true;
    45. },
    46. });
    47. A.name = 'Joy';