ES6语法(三)知识小结

对象扩展

新的对象字面量特性

1,方法的定义

let obj={
	a:1,
	show(){
	console.log("show")
	}
}
obj.show()

运行结果

2,属性的简写

let na="sagasw"
let ob={
	na,
	age:10
}

运行结果

3,计算属性名

let kok='name'
let galarxy={
	[kok]:1,
	[kok+'1']:1111,//[]内可以拼接
	b:2
}
console.log(galarxy)
console.log(galarxy[kok])
console.log(galarxy[kok+'1'])

运行结果如下

新的对象方法

1,object.is

比较是否相等

console.log(Object.is(1,'1'))
console.log(Object.is(NaN,NaN))

运行结果如下

2,Object.setPrototypeOf

原型设置

let obj={
	a:1,
	b:2
	}

let obj1={
	c:3
	}
Object.setPrototypeOf(obj,obj1);
console.log(obj.c);

运行结果如下

原型第一种(内置属性):
obj.proto=obj1;
原型第二种(设置属性):
let obj2=Object.create(obj)//缺陷:不能再次设置对象原型
console.log(obj2.proto)

3,Object.assign

let obj1={
	a:1
}
let obj2={
	b:2
}
let obj3={
	c:3
}
Object.assign(obj1,obj2,obj3);
console.log(obj1);
//注意:1,复制对象属性,自身的可遍历的属性

默认可遍历>>>

let obj1={
	a:1
}
let obj2={
	b:2
}
let obj3={
	c:3
}
Object.assign(obj1,obj2,obj3);
console.log(obj1.c);
//注意:1,复制对象属性,自身的可遍历的属性

手动更改为不可遍历>>>

let obj1={
	a:1
}
let obj2={
	b:2
}
let obj3={
	c:3
}
Object.setPrototypeOf(obj2,obj3);
Object.defineProperty(obj2,'e',{
	value:5,
	enumerable:false
})
console.log(obj2.e);
Object.assign(obj1,obj2,obj3);
//注意:1,复制对象属性,自身的可遍历的属性

当enumberable设置为false后的运行结果>>>

当enumberable设置为false后的运行结果>>>

//注意:2,复制是一个对象一个对象复制的
//注意:3,复制是个浅拷贝

对象的遍历

1,Object.keys

2,Object.values(es2017)

3,Object.entries(es2017)

let obj={
	a:1,
	b:2,
	c:3
}

console.log(Object.keys(obj))
console.log(Object.values(obj))
console.log(Object.entries(obj))

运行结果如图所示:

发布了18 篇原创文章 · 获赞 15 · 访问量 3771

猜你喜欢

转载自blog.csdn.net/qq_41136216/article/details/105520380