1.属性的简洁表示
let name = "小黑";
let stu = {
name
}
console.log(stu);
2.对象中函数的简写
let a = 0;
let b = 10;
let stus = {
eat() {
return {
a, b
}
}
}
3.getter访问器和setter访问器
getter访问器:针对属性获取
setter访问器:针对属性设置
let animal = {
_name: '',
set name(n) {
console.log("设置_name");
this._name = n;
},
get name() {
console.log("获取属性_name");
return this._name
}
}
console.log(animal);
animal.name = "小黑";
console.log(animal.name);
4.使用"对象点属性"或"对象[key]"获取对象的属性值
let s = { a: 1 }
console.log(s.a);
console.log(s['a']);
5.使用"对象点属性"或"对象[key]"设置对象的属性值
let o = {};
o.age = 20;
o['sex'] = "男";
console.log(o);
6.获取或设置对象属性的一些配置参数
let people = {
name: "小花",
age: 20
}
//获取people对象name属性的相关配置
var desc = Object.getOwnPropertyDescriptor(people, 'name');
console.log(desc);
//设置对象属性的相关配置
Object.defineProperty(people, 'name', {
enumerable: false
});
7.对象的遍历
let qw = {
name: "xiao",
age: 10,
sex: '女',
[Symbol('age')]() {
console.log("第一无二的方法");
}
}
for (let key in qw) {
console.log(key);
}
console.log(Object.keys(qw));//返回所有key的集合
console.log(Object.getOwnPropertyNames(qw));
console.log(Object.getOwnPropertySymbols(qw));//返回symbol数据类型的key值
8.使用symbol函数产生独一无二的变量
let a1 = Symbol('abc');
console.log(a1);
9.魔术字符串:代码全动态,利于后期维护修改
let way = [
{
type: 'weixin',
zhe: 0.9
},
{
type: 'zhifubao',
zhe: 0.85
},
{
type: 'baitiao',
zhe: 1.2
}
]
let fun = (shop, obj) => {
let f1 = 1;
let price = 0;
switch (shop.type) {
case shop.type:
f1 = shop.zhe;
price = f1 * obj.price * obj.num;
break;
}
return price;
}
var allprice = fun(way[2], { price: 120, num: 5 });
console.log(allprice);