Прошло некоторое время, когда я пишу код спагетти с помощью javascript. Я попытался организовать свой код, но я смущен, какой из них использовать и когда использовать определенный шаблон.Конструктор против объектного литерала против шаблона модуля raveling
конструктор модель
function foods(food){
this.food = food;
this.eat = function(){
return 'I"m eating ' + this.food;
}
}
var eatApple = new foods("apple");
console.log(eatApple.eat());
var eatBanana = new foods("banana");
console.log(eatBanana.eat());
литерал объекта
var foods = {
food : null,
eat : function(){
return 'I"m eating ' + this.food;
}
};
foods.food = 'apple';
console.log(foods.eat());
foods.food = 'banana';
console.log(foods.eat());
раскрывая модуль
var foods = function(){
var defaultFood = "default food";
function eat(food){
//this is ugly
if(food){
food = food;
}else{
food = defaultFood;
}
return 'I\"m eating ' + food;
}
return {
eat: eat
};
}();
var justEating = foods.eat();
var eatingApple = foods.eat('apple');
var eatingBanana = foods.eat('banana');
console.log(justEating);
console.log(eatingApple);
console.log(eatingBanana);
Я думаю, что литерал объекта является наиболее часто используемым, почему не все просто использовать это? И показывает ли модуль еще актуальным в 2016 году? большинство людей просто будут делать module.exports.
Oo Я случайно открыл эту вкладку 7 раз, и этот вопрос получил 7 просмотров: D –
Возможный дубликат [Должен ли я использовать объектные литералы или функции конструктора?] (Http://stackoverflow.com/questions/4859800/should- i-be-use-object-literals-or-constructor-functions) – azad
Маленький наконечник для «это уродливый», если иначе, вы можете сделать «food = food | defaultFood', на что лучше смотреть. –