博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object.defineProperty()
阅读量:6053 次
发布时间:2019-06-20

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

Object.defineProperty()方法会在对象上修改属性或者定义一个新属性 格式如下:

var obj = {};var objDef = {    configurable:true,//true表示该属性可删除,默认值是false,    enumerable:true,//true表示该属性可枚举,默认值是false    value:'key1',//赋值给'newKey'的值,默认值是undefined    writable:true,//true表示该属性可修改,默认值是false    //get,set在下面另外介绍};Object.defineProperty(obj,'newKey',objDef);console.log(obj.newKey);//key1复制代码

注意:当使用了getter或setter方法,不允许使用writable和value这两个属性

var obj = {};var initName = 'tangj'Object.defineProperty(obj,'name',{	get:function(val){		return initName	},//获取属性时触发该函数	set:function(val){		initName = val	},//给该属性赋值时触发该函数})console.log(obj.name)obj.name = 'change value';console.log(obj.name)复制代码

使用 js 实现一个只读的属性

var obj = {};var initName;Object.defineProperty(obj,'name',{    	set:function(val){		console.log(`name is readonly.`, this)	},//给该属性赋值时触发该函数})console.log(obj.name);//undefinedobj.name = 'change value';console.log(obj.name);//undefined复制代码

转载地址:http://zmeex.baihongyu.com/

你可能感兴趣的文章
java基础---->正则表达式
查看>>
2.2013/06/13_log(n)+1
查看>>
关于加载iframe时进度条不消失的问题
查看>>
poj 3984迷宫问题【广搜】
查看>>
oracle ORA-01840:输入值对于日期格式不够长
查看>>
python基础知识~logger模块
查看>>
新建Web网站与新建Web应用程序的区别
查看>>
SIP入门(二):建立SIPserver
查看>>
key 串口
查看>>
Servlet3.0的异步
查看>>
WebService连接postgresql( 失败尝试)
查看>>
从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?...
查看>>
Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
查看>>
从MFQ方法到需求分析
查看>>
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
LinkedHashMap源码分析(基于JDK1.6)
查看>>
访谈《敏捷和精益项目集管理》的作者Johanna Rothman
查看>>