spread
拓展运算符用的比较多,他的特性有哪些呢?
代码是最直观的了。
basic example
const man = {
name: 'xhs',
age: 18
}
const company = {
name: 'pinee',
depart: {
name: 'dev'
}
}example1
Object.defineProperty(man, 'sex', {
value: 'nan',
writable: true,
configurable: true
})
man //{name: "xhs", age: 18, sex: "nan"}
{...man} //{name: "xhs", age: 18}由上面可以发现 扩展运算符不支持enumerable: false的属性。
由上面可以发现,扩展运算符只会显示出自有的属性,不会展示继承的属性。
example3
可以发现,嵌套的引用的是一个对象。因为 他是一个浅拷贝,只克隆对象本身,不会拷贝嵌套实例。
当然,也可以嵌套解决
example3
可以发现,扩展运算符存在原型属性丢失的情况 。 因为b的构造函数是Bar, b2的构造函数是Object, info是存在Bar的原型的对象上。
扩展运算符不会扩展
enumerable: false的属性.只会扩展自有属性,不会扩展继承的属性
他是一个浅拷贝
原型属性丢失
Last updated