使用Object.definePropery方法定义一个只读对象实例
来源:互联网 发布:网上代理销售软件 编辑:程序博客网 时间:2024/05/21 07:15
在某些场景下,我们定义了一个Object对象实例,为其添加属性和方法供全局使用,但又不希望该实例在运行时被误改变时,可以考虑使用Object.defineProperty()方法修改默认特性来实现。
Object.defineProperty()方法接收三个参数:属性所在的对象;属性的名字和一个描述符对象。
其中,描述符(descriptor)对象的属性必须是:configurable、enumerable、writable和value。
- Configurable: 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性。
- Enumerable: 表示能否通过for-in循环返回属性。
- Writable: 表示能否修改属性的值
- Value: 包含这个属性的数据值
设置其中的一个或多个值,以修改对应的特性。
示例:属性值不可修改(如果尝试为它指定新值,在非严格模式下,赋值操作将被忽略;在严格模式下,赋值操作将会导致抛出错误。)
var person = {};Object.defineProperty(person, "name", { writable: false, value: "Nicholas"});console.log(person.name); // "Nicholas"person.name = "Greg";console.log(person.name); // "Nicholas"
示例: 不可配置的属性
var person = {};Object.defineProperty(person, "name", { configurable: false, value: "Nicholas"});console.log(person.name); // "Nicholas"delete person.name; console.log(person.name); // "Nicholas"把configurable属性设置为false,表示不能从对象中删除属性,如果对这个属性调用delete,则在非严格模式下什么也不会发生,而在严格模式下会导致错误。而且,一旦把属性定义为不可配置的,就不能再把它变回可配置了。
阅读全文
0 0
- 使用Object.definePropery方法定义一个只读对象实例
- Object-c 对象的使用和定义
- JS面向对象定义多个属性--object.defineProperties()方法
- 定义一个c++类只能实例一个对象
- 定义一个类让其只能实例化一个对象
- 使用Hibernate.initialize(Object obj)方法初始化一个代理对象或者集合
- Object C学习笔记3-对象的使用和定义
- 将Object转换成动态指定的对象,将一个实例引用指向一个Object引用
- JavaScript 定义Object对象不一致??
- Object-C: 学习实例3 使用集合对象
- js 定义一个对象并且给对象赋值方法
- C#实例化一个对象的方法
- 创建一个Object()对象
- javascript(类定义)创建对象实例时指定成员方法
- 在js对象中定义属性和方法的实例。
- 方法中定义一个内部类对象时,如何在内部类对象中使用调用该方法的当前对象的其他方法
- javascript 对象的定义和方法的定义使用
- 使用Object对象的toString()方法自定义判断数据类型方法
- LoRaWAN协议
- LeetCode编程练习
- 微信小程序-导航栏样式、tabBar导航栏
- Dapper.net Nullable<DateTime>类型数据转换时异常问题解决
- spark 之 把hive里的表和myslq 里的表做计算
- 使用Object.definePropery方法定义一个只读对象实例
- java装箱和拆箱的记录
- java 反射技术:加载类,解析类的组成部分
- Pandas基础复习-Series
- 自定义View控件点击随机生成4位数
- 冒泡排序
- Android自定义View(一、初体验自定义TextView)
- ocs计费项目重要点
- Java的单元测试(Junit)