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

最新文章

  1. Win服务器常用批处理脚本
  2. Javascript事件冒泡机制
  3. grunt压缩合并代码
  4. wpf中ToolTip实现
  5. 晒幸福, qq空间晒法
  6. dev中如何对combox下拉框设置可消除属性以及ASPxGridView中金额,数量的显示,以及总计、grid中某行值
  7. JavaScript中事件捕获(Event capturing)-------------->由外向内,事件冒泡(Event bubblin)---------->由内向外
  8. mac os快捷键
  9. VMware Workstation不能启用虚拟设备floppy0由于灭有相应的有效设备在主机上. 你要尝试在每次打开虚拟机电源时连接此虚拟设备?
  10. ASP.NET MVC 解决LINQ表达式中的SqlMethods 未找到命名空间问题
  11. ASP.NET服务器端事件利用MARQUEE实现正在处理效果
  12. 把流的形式转化为Base64
  13. nginx + springboot 配置
  14. 【JVM】-NO.112.JVM.2 -【JDK11 HashMap详解-2-tab[i = (n - 1) & hash])剖析】
  15. C++变量存储类别和内存四区
  16. [Re:从零开始的分布式] 0.x——Reids实现分布式锁
  17. Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结
  18. pdb文件及引发的思考
  19. SecureFXPortable中文乱码
  20. y3pP5nCr攀科汲野奶园 O8XY02cm脱罕谘诜驮仆补殖沦ltGLD71R

热门文章

  1. [Rust] Pass a JavaScript Function to WebAssembly and Invoke it from Rust
  2. Python--学习过程
  3. 函数柯里化 curry
  4. 如何在List集合中去重
  5. iGrimaceVX3.0和1.44在线源手机直接安装教程
  6. region split流程分析
  7. 浅谈C#中常见的委托
  8. BMP文件格式具体解释
  9. gradle配置远程仓库(以及使用本地maven仓库)
  10. List 调用 remove 方法时抛出 java.lang.UnsupportedOperationException 异常原因