JavaScript如何根据属性获取属性的父级
这篇文章主要介绍“JavaScript如何根据属性获取属性的父级”,在日常操作中,相信很多人在JavaScript如何根据属性获取属性的父级问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如何根据属性获取属性的父级”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
话不多说上代码functionmObj(Obj){varobj=newProxy(Obj,{set:function(obj,pro,val,Pro){if(typeofval=='object'){val.parent=Proval=mObj(val)}obj[pro]=valreturnval}})returnobj}
我们只需要用 mObj 方法来初始化我们需要代理的对象
varobj=mObj({})向其添加属性
注!只能添加空对象,否则其属性将失去代理
obj.a={}obj.b={}obj.a.aa={}obj.b.bb={}console.log(obj)//Proxy{a:Proxy,b:Proxy}
Proxy就是代理对象
尝试使用obj.parent获取它的父级console.log(obj.a.parent,obj.b.parent)//Proxy{a:Proxy,b:Proxy}Proxy{a:Proxy,b:Proxy}console.log(obj.a.aa.parent,obj.b.bb.parent)//Proxy{parent:Proxy,aa:Proxy}Proxy{parent:Proxy,bb:Proxy}
可以看到已经成功获取了属性的父级那么它可以用来干什么呢?
1. 定位父级obj.a.parent//Proxy{a:Proxy,b:Proxy}2. 生成兄弟属性
varp=obj.ap.parent.c={}obj.c//Proxy{parent:Proxy}3. 检测是否为兄弟属性
varp1=obj.a.parent,p2=obj.b.parentvarp3=obj.a.aa.parent,p4=obj.b.bb.parentp1==p2//truep3==p4//false4. 定位最高父级
p5=obj.a.aawhile(p5.parent){p5=p5.parent}p5//Proxy{a:Proxy,b:Proxy}p5==obj//true
到此,关于“JavaScript如何根据属性获取属性的父级”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。