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

es5_Object

时间:2023-04-05 17:14:49 HTML5

es5_Objectcreat(specifypropto,):letobj={x:1,y:2};//es5letobj2=Object.create(obj,{z:{value:3}});//es6letobj3={__proto__:obj,z:3}console.log(obj2);//打印对象{z:3};console.log(obj3);//打印对象{z:3};console.log(obj2.x);//打印1;Object.defineProperty()用于定义对象的属性:letobj={x:1,y:2}obj.k=3;Object.defineProperty(obj,"j",{value:4,writable:true,//可写enumerable:true,//可遍历configurable:true//可配置});Object.defineProperties()为对象指定一个属性:Object.defineProperties(obj,{"m":{value:"m1"},"l":{value:"l1"}})obj.j=50;obj.k=50;console.log(obj);//打印对象{x:1,y:2,k:50,j:50,m:"m1",l:"l1"};for(varkeyinobj){console.log(key);//打印xykj;};get,set:getOwnPropertyDescriptor()用于获取属性的描述:console.log(Object.getOwnPropertyDescriptor(obj,"x"));//打印对象{value:1,writable:true,enumerable:true,configurable:true};Object.keys()用于返回对象的键值:console.log(Object.keys(obj));//print["x","y","k","j"];Object.getOwnPropertyNames()获取所有属性名:console.log(Object.getOwnPropertyNames(obj));//print["x","y","k","j","m","l"];Object.preventExtensions():Object.preventExtensions(obj);//使一个对象不可扩展,该对象不能再添加新的属性,但可以删除已有的属性;Object.seal():Object.seal(obj);//密封一个对象,该方法会阻止对象膨胀,并将对象的所有属性设置为不可配置;Object.freeze():Object.freeze(obj);//冻结一个对象满足常量要求,这个方法会阻止对象展开,并且冻结对象,设置它的所有属性都设置为只读和非-可配置;Object.isExtensible():Object.isExtensible(obj);//判断对象是否扩展;Object.isSealed():Object.isSealed(obj);//判断对象是否密封;Object.isFrozen():Object.isFrozen(obj);//判断对象是否冻结;//writable:false不可更改,true可更改;//enumerable:false不可遍历,true可遍历;//configurable:false不能配置,true是可配置的;'usestrict':严格模式1.很多以前版本的语法都被弃用了,如果使用会提示错误;严格模式2.让你使用一些最新版本的语法;部分浏览器不支持新版语法支持严格模式;以下是严格模式的总结:1.使用var声明变量在严格模式下不会通过2.如何使用'eval'3.valscope4.ithisdisabled5.aller/calleeisdisabled6.禁止对象添加新属性会报错7.除系统内置属性外会报错8.删除使用var声明的变量9、删除具有不可删除属性(isSealed或isFrozen)的对象会报错。10.给对象的只读属性赋值会报错。11.对象有同名属性会报错。12.函数有Parameters同名会报错13.Octalnotationisdisabled14.arguments严格定义为参数,不再绑定形式参数15.函数必须在顶层声明16.新关键字在ES5中不能用作变量标识符,如implements、interface、let、package、private、protected、pulic、static、yield17。call/apply的第一个参数直接传入,没有封装成对象。18、当call/apply的第一个参数为null/undefined时,this为null/undefined19。bind第一个参数为null/undefined时,this为null/undefined