博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js实现属性只读
阅读量:7073 次
发布时间:2019-06-28

本文共 486 字,大约阅读时间需要 1 分钟。

第一种 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地址:

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

你可能感兴趣的文章
千兆级LTE的一小步,5G之路的一大步
查看>>
跟我一起写 Makefile(一)
查看>>
管理日志-原创理论工具--技能方格图
查看>>
MPLS TE第一步:创建基本TE隧道
查看>>
windows中禁止U盘写入
查看>>
Bash技巧总结
查看>>
在窗体中添加标签Label、Icon图标
查看>>
Perl脚本学习笔记(一)
查看>>
基于BIND实现DNS的解析、主从、子域、请求转发、访问控制
查看>>
Oracle Number用法
查看>>
nat
查看>>
基于Cisco技术的MPLS原理以及应用实现[一]
查看>>
iPhone/Mac Objective-C内存管理原理
查看>>
极速理解设计模式系列:14.轻量级模式(Flyweight Pattern)
查看>>
Resin HTTPS 安装指南
查看>>
无法加入域
查看>>
在RHEL5下构建LAMP网站服务平台之架设Discuz!论坛
查看>>
.NET应用架构设计:原则、模式与实践 目录预览
查看>>
关于vector性能的测试(一)
查看>>
【移动开发】Android应用开发者应该知道的东西
查看>>