当前位置: 首页 > Web前端 > JavaScript

备注_0

时间:2023-03-27 16:10:44 JavaScript

属性描述对象Object.getOwnPropertyDescriptor()Object.getOwnPropertyDescriptor()方法可以获取属性描述对象。它的第一个参数是目标对象,第二个参数是一个字符串,对应目标对象的属性名。varobj={p:'a'};Object.getOwnPropertyDescriptor(obj,'p')//Object{value:"a",//可写:true,//可枚举:true,//可配置:true//}上面代码中,Object.getOwnPropertyDescriptor()方法获取了obj.p的属性描述对象。Object.getOwnPropertyNames()Object.getOwnPropertyNames方法返回一个数组,其成员为参数对象自身所有属性的属性名,不管该属性是否可遍历。varobj=Object.defineProperties({},{p1:{value:1,enumerable:true},p2:{value:2,enumerable:false}});Object.getOwnPropertyNames(obj)//["p1","p2"]Object.prototype.propertyIsEnumerable()varobj={};obj.p=123;obj.propertyIsEnumerable('p')//trueobj.propertyIsEnumerable('toString')//false在上面的代码中,obj.p是可迭代的,obj.toString是继承的属性。Object.preventExtensions()#Object.preventExtensions方法可以防止对象添加新的属性。varobj=newObject();Object.preventExtensions(obj);Object.defineProperty(obj,'p',{value:'hello'});//类型错误:无法定义属性:p,对象不可扩展.obj.p=1;obj.p//undefinedObject.isExtensible()#Object.isExtensible方法用于检查一个对象是否使用了Object.preventExtensions方法。varobj=newObject();Object.isExtensible(obj)//trueObject.preventExtensions(obj);Object.isExtensible(obj)//falseObject.seal()#Object.seal方法使对象既不能添加新属性,也没有办法删除旧的属性。varobj={p:'hello'};Object.seal(obj);deleteobj.p;obj.p//"hello"obj.x='world';obj.x//undefinedObject.isSealed()#Object.isSealed方法用于检查对象是否使用了Object.seal方法。varobj={p:'a'};Object.seal(obj);Object.isSealed(obj)//trueObject.freeze()Object.freeze方法可以让一个对象无法添加新的属性,删除旧的属性,and属性的值不能改变,使这个对象有效地成为一个常量。varobj={p:'hello'};Object.freeze(obj);obj.p='world';obj.p//"hello"obj.t='hello';obj.t//undefineddeleteobj.p//falseobj.p//"hello"Object.isFrozen()#Object.isFrozen方法用于检查一个对象是否使用了Object.freeze方法。varobj={p:'你好'};目的。冻结(对象);目的。isFrozen(obj)//真