用函数的形式//做饭 let cook = function(){ let FoodMaterial = 'Tomatoes'; //食材:西红柿
let Spice = '食用盐'; //作料:食用盐
return { buy:function(){ console.log('购买' + FoodMaterial + '和' + 'Spice' );
}, doFood:function(){ console.log(`开始做${FoodMaterial}`);
}, setFood:function(food){ //未传参则不执行赋值
food && (FoodMaterial = food);
}
}
}let o = cook();
o.setFood('肉');
o.buy();对象的形式let cook = { FoodMaterial : 'Tomatoes',
Spice :'食用盐',
buy:function(){ console.log('购买' + FoodMaterial + '和' + 'Spice' );
}, doFood:function(){ console.log(`开始做${FoodMaterial}`);
}, setFood:function(food){ //未传参则不执行赋值
food && (FoodMaterial = food);
}
} let o = cook;
o.setFood('肉');
o.buy();
o.doFood();问题一:以上代码结果一样,但是有什么不同么,用哪个更好?问题二:在不用js框架的情况下,请问怎么编写代码比较好,附代码更好
1 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
回答下问题一吧,两种用法是不同的。
对象的形式:
let o1 = cook; let o2 = cook;
o1
和o2
是指向同一块内存地址的,所以可以认为此时的o1
、o2
、cook
是同一个对象。
函数的形式:
let o1 = cook(); let o2 = cook();
每执行一次函数,就return
一个对象,执行两次函数,会创建两个对象,所以o1
和o2
是没有关联的。
添加回答
举报
0/150
提交
取消