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

ECMAScript委员会:JavaScript最基本的14种操作对象的方法

时间:2023-04-02 17:16:02 HTML

先贴个MDN地址,搜索时搜索js实现的方法名1.获取对象原型[[GetPrototypeOf]]//js实现:GetPrototypeOfletobj={}letproto=Object.getPrototypeOf(obj)proto===对象。__proto__===Object.prototype//true2.Setobjectprototype[[SetPrototypeOf]]//js实现:SetPrototypeOfletobj={}Object.setPrototypeOf(obj,{a:1,b:2})//Functionalobj.__proto__={a:1,b:2}//赋值Object.prototype={a:1,b:2}//赋值//效果同上3.获取对象自身属性[[GetOwnProperty]]//js实现://1.getOwnPropertyDescriptor获取描述符//2.getOwnPropertyDescriptors获取对象下所有属性的描述符//3.getOwnPropertyNames获取对象下所有属性名(不包括Symbol)//4.getOwnPropertySymbols获取对象下所有Symbol属性名//描述符为可配置可枚举可写值4.禁止对象扩展[[PreventExtensions]]//js实现:preventExtensionsletobj={a:1}Object.preventExtensions(objcannotaddnewproperties,undeletable,readable)//obj可以't被改变,不能添加新属性,可以删除属性,可以读取,可以改变extensible=Object.isExtensible(obj)//true//使对象不可扩展的方法1.冻结2.密封3.防止tExtensions6。拦截对象操作[[DefineOwnProperty]]//js实现:defineProperty单个属性,defineProperties多个属性letobj={a:1}Object.defineProperty(obj,'a',{value:1,writable:true,configurable:true,enumerable:true,//前面是描述符//value,writable可以同时出现,get,set也可以同时出现//但是value和writable其中一个出现时,get,set不能配置,反之亦然get(){}set(){}})7.判断对象是否具有某个属性[[HasProperty]]//js实现:hasOwnPropertyvarobj={a:1}Object.setPrototypeOf(obj,{b:2})obj.hasOwnProperty('a')//trueobj.hasOwnProperty('b')//false8.[[GET]]//js实现:关键字in,obj.a中这种写法。等,都是GET9的实现[[SET]]//js实现:obj.a=1,obj['a']=1这种写法都是SET10的实现[[Delete]]//js实现:关键字delete11。[[Enumerate]]//js实现:in12的关键字组合。[[OwnPropertyKeys]]//js实现:keysvarobj={a:1,b:2}Object.setPrototypeOf(obj,{c:3})Object.keys(obj)//['a','b']13。函数调用//js实现:执行函数声明和执行函数表达式functionfn(){}fn()//执行函数声明varobj={fn=function(){}}obj.fn()//执行函数表达式14.实例化对象//js实现:new关键字