(前后应该有两个下划线,这里没显示出来)。用来读取或者设置当前对象的prototype对象。但是一般不直接对这个属性进行操作,而是通过Object.setProtortypeOf() (写操作)、Object.getPrototypeOf() (读操作)或者Object.create() (生成操作)代替。
Object.setProtortypeOf()
let proto = {}; let obj = { x : 10}; Object.setProtortypeOf(obj,proto); proto.y = 20; proto.z = 40; obj.x //10 obj.y //20 obj.z //40
Object.getProtortypeOf()
function Rectangle(){} var rec = new Rectangle(); Object.getPrototypeOf(rec) === Rectangele.prototype // true
9. 对象的扩展运算符
ES7中提案,将rest参数/扩展运算符(…)引入对象。
Rest参数
Rest参数用于从一个对象取值,相当于将所有可遍历尚未被读取的属性,分配到制定的对象上。所有的键及其值都会复制到新对象上。需要注意的是rest参数的复制是浅复制,并且也不会复制继承自原型对象的属性。
简单的demo
let {x,y,...k} = {x:2, y:3,z:4,a:5}; x //2 y //3 k //{z:4,a:5}
扩展运算符
扩展运算符用于取出参数对象的所有可遍历属性,复制到当前对象中。
let z = {a:3 ,b:4}; let n = {...z}; n //{a:3,b:4}
扩展运算符还可以合并两个对象。
let a = { c:5,d:6 }; let b = { e:7,f:8 }; let ab = {...a,...b}; ab //{c:5,d:6,e:7,f:7}
扩展运算符还可以自定义属性,会在新对象中覆盖掉原有参数。
let a = {x:1,y:2}; let aWithOverides = {...a,x:3,y:4}; aWithOverides //{x:4,y:4}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章: