// new Object
// 这种方式虽正规,但比较麻烦,需要先创建实例,再逐个添加属性和方法
// let mlt = new Object()
// mlt.meat = ['beef','pork','salmon']
// mlt.vegetable = ['cabbage','broccoli','carrot']
// mlt.ingredient = ['salt','oil','chili']
// mlt.effect = function(){
// console.log(`${this.vegetable[1]}有利于身体健康(new Object)`)
// }
// console.log(mlt)
// mlt.effect()
// 对象字面量
// let mlt = {
// meat : ['beef','pork','salmon'],
// vegetable : ['cabbage','broccoli','carrot'],
// ingredient : ['salt','oil','chili'],
// effect(){
// console.log(`${this.vegetable[1]}有利于身体健康()对象字面量`)
// }
// }
// console.log(mlt)
// mlt.effect()
// 工厂模式
// 解决了创建多个类似结构对象的问题
// 但无法让新对象与创造它的函数进行链接
// function createMLT(meat, vegetable, ingredient){
// let obj = new Object()
// obj.meat = meat
// obj.vegetable = vegetable
// obj.ingredient = ingredient
// obj.effect = function(){
// console.log(`${this.vegetable[0]}有利于身体健康(工厂模式)`)
// }
// return obj
// }
// let meat1 = ['beef','pork','salmon']
// let vegetable1 = ['cabbage']
// let ingredient1 = ['salt']
// let meat2 = ['pork']
// let vegetable2 = ['broccoli']
// let ingredient2 = ['oil']
// let mlt1 = createMLT(meat1, vegetable1, ingredient1)
// let mlt2 = createMLT(meat2, vegetable2, ingredient2)
// mlt1.effect()
// mlt2.effect()
// 构造函数
// function MLT(meat, vegetable, ingredient){
// this.meat = meat
// this.vegetable = vegetable
// this.ingredient = ingredient
// this.effect = function(){
// console.log(`${this.vegetable[0]}有利于身体健康(构造函数)`)
// }
// }
// let meat1 = ['beef','pork','salmon']
// let vegetable1 = ['cabbage']
// let ingredient1 = ['salt']
// let meat2 = ['pork']
// let vegetable2 = ['broccoli']
// let ingredient2 = ['oil']
// let mlt1 = new MLT(meat1, vegetable1, ingredient1)
// let mlt2 = new MLT(meat2, vegetable2, ingredient2)
// mlt1.effect()
// mlt2.effect()
// Object.create
// 新对象和原型都会被修改,它们之间是有关联的
// let mlt = {
// meat : ['beef','pork','salmon'],
// vegetable : ['cabbage','broccoli','carrot'],
// ingredient : ['salt','oil','chili'],
// effect(){
// console.log(`${this.vegetable[0]}有利于身体健康()对象字面量`)
// }
// }
// let mlt1 = Object.create(mlt)
// mlt.vegetable.push('garlic')
// console.log(mlt.vegetable)
// console.log(mlt1.vegetable)
// class
// 可算作构造函数的语法糖
// 使我们可以使用面向对象编程
// class MLT {
// constructor (meat, vegetable, ingredient){
// this.meat = meat
// this.vegetable = vegetable
// this.ingredient = ingredient
// this.effect = function(){
// console.log(`${this.vegetable[0]}有利于身体健康(构造函数)`)
// }
// }
//}
// let meat1 = ['beef']
// let vegetable1 = ['cabbage']
// let ingredient1 = ['salt']
// let meat2 = ['pork']
// let vegetable2 = ['broccoli']
// let ingredient2 = ['oil']
// let mlt1 = new MLT(meat1, vegetable1, ingredient1)
// let mlt2 = new MLT(meat2, vegetable2, ingredient2)
// mlt1.effect()
// mlt2.effect()