js 如何将某个属性设置成隐藏的

来源:互联网 发布:虾囧笑话源码v4.0 编辑:程序博客网 时间:2024/05/22 15:00

ECMAScript5下,可以为对象定义隐藏属性
这样定义的属性不可枚举,故不出现在序列化结果中。
在网站开发应用中,方便避免将隐藏属性序列在数据中发送给服务器

a={x:1}a["y"]=2;//添加非隐藏属性yJSON.stringify(a) //{"a":1,"y",2}Object.defineProperty(a,"z",{"value":3,enumerable:false,writeable:true,configurable:true})console.log(a.z)  //3JSON.stringify(a) //{"a":1,"y",2}

如果某个属性已经存在并且是非隐藏的,某个时候想把它变成隐藏属性怎么办?

先保留住原来的值,删除这个属性,最后重新赋值即可:

var _val = obj.attr;delete obj.attrObject.defineProperty(obj, attr, {         value : _val,         configurable : true,         writable  : true});

其他的将该属性赋值成 null 或undefined的都不可以,因为这个属性已经存在,无法改变其隐藏性。


effevo技术团队出品 (https://effevo.com)
这里写图片描述

0 0
原创粉丝点击