解决问题:缩减代码
什么是字面量:一般等号右边的内容都是字面量
增强对象字面量可以对对象的属性和方法进行简写
简写前
function createBookShop(inventory){
return{
inventory:inventory,
inventoryValue:function(){
return this.inventory.reduce((total,book)=>total+book.price,0);
},
priceForTitle:function (title){
return this.inventory.find(book=>book.title===title)
.price;
}
}
}
const inventory=[
{title:'Vue',price:10},
{title:'Angular',price:15}
];
const bookShop=createBookShop(inventory);
console.log(bookShop.inventoryValue());//25
console.log(bookShop.priceForTitle('Angular'));//15
简写后
function createBookShop(inventory){
return{
inventory,//key和value相同的话可以把value值省略
//函数简写可以把':function'删掉
//比如在vue里的应用
inventoryValue(){
return this.inventory.reduce((total,book)=>total+book.price,0);
},
priceForTitle(title){
return this.inventory.find(book=>book.title===title)
.price;
}
}
}
const inventory=[
{title:'Vue',price:10},
{title:'Angular',price:15}
];
const bookShop=createBookShop(inventory);
console.log(bookShop.inventoryValue());//25
console.log(bookShop.priceForTitle('Angular'));//15