js实现属性只读

Posted meetqy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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实现属性只读

以上是关于js实现属性只读的主要内容,如果未能解决你的问题,请参考以下文章

js 动态控制 input 框 的只读属性

js各种宽高

TypeError:无法分配给只读属性 - Karma

使用js设置input标签只读 readonly 属性

angularJS使用ocLazyLoad实现js延迟加载

AJAX相关JS代码片段和部分浏览器模型