第一种 Object.defineProperty

这种是在vue源码中看见的

let obj = {
  $data: {}
};

Object.defineProperty(obj, '$data', {
  get() {
    return this;
  },

  set() {
    return console.warn('只读属性不能修改');
  }
})

第二种使用闭包实现

使用场景:团队协作开发的时候,没有详细的文档规范,防止队友误操作。

const Ds = (function () {
  const obj = {
    $data: {
      a:1
    }
  }

  class Ds {
    get() {
      return obj;
    }
  }

  return new Ds();
})()

console.log(Ds.get());
console.log(Ds.obj); // undefind

demo地址: js实现属性只读

相关文章:

  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2021-08-19
  • 2021-06-27
猜你喜欢
  • 2021-06-12
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案