js实现属性只读

第一种 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实现属性只读

转载于:https://juejin.im/post/5cda8c72e51d456cec195f20

    原文作者:weixin_34074740
    原文地址: https://blog.csdn.net/weixin_34074740/article/details/91432881
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞