Js 的对象保护

保护对象包括保护对象的数据和保护对象的结构

   

1.保护对象的数据  1.数据属性

                                2.访问器属性

   数据属性:enumerable :可用for in 遍历    

                     value        :

                     configrable : 1 可删除   2.e。。。和r。。。 可修改                配置完不可逆

                     writeble     可修改

  访问器属性 

             1.将被保护的属性换个名字  例如 ——age 半隐藏  en--false  con--false 

             2.为对象添加访问器属性   Object.setProperties   age {

                                                              get:function(){}                       

                                                               set:function(value) 

                                                          }

                                                       可遍历  不可配置

 

2、保护结构:防止对对象的结构进行篡改,比如:添加新属性,删除现有的属性
有3个级别
一、防拓展:禁止给对象添加新属性
Object.preventExtensions(对象)
防止对eric的一切扩展
二、密封:在兼具防扩展的基础上,进一步防止删除现有属性
Object.seal(对象)
将eric密封起来
强调:属性值,依然可以修改。
seal原理:自动将所有属性的configurable为false
三、冻结:在密封基础上,进一步禁止修改属性值
何时:今后凡是共用的对象的属性值,不能随便更改
如何:Object.freeze(对象)
原理:自动将所有属性的writable:false


 

posted @ 2020-04-05 22:51  锋_锋  阅读(416)  评论(0编辑  收藏  举报