Как добавить массив к объекту в JavaScript? - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь добавить массив с именами ингредиентов к объекту с именем addIngredients, чтобы при вызове метода displayRecipe () он отображал как объект myFavoriteRecipe (), так и массив, показывая его в окне консоли.Я получаю сообщение об ошибке о том, что displayRecipe () не определен.Почему и как я могу это исправить?

var ingredients = [];

function myFavoriteRecipe() {
    "use strict";
     this.title = "guacamole";
     this.serves = 8;
    
}

function addIngredients(items) {
    "use strict";
    //CREATING INSTANCE
    var foodItems = new myFavoriteRecipe ();
    //Pushing ingredients to food items
    ingredients.push(foodItems);
    return items;
}

addIngredients("3 Avocados");
addIngredients("1 Lime");
addIngredients("1 TSP salt");
addIngredients("1/2 Cup Onion");
addIngredients("3 Tablespoons of Cilantro");
addIngredients("2 Diced Tomatoes");
addIngredients("1 pinch Ground Pepper");

addIngredients.prototype.displayRecipe = function() {
    "use strict";
    for (var items in addIngredients) {
        return addIngredients[items];
    }
}
  
window.console.log(displayRecipe());

1 Ответ

1 голос
/ 15 апреля 2019

Прототип должен быть установлен на myFavoriteRecipe, а не на addIngredients.

Пожалуйста, посмотрите на это:

function myFavoriteRecipe(info) {
  this.title = info.title || 'Not Set';
  this.serves = info.serves || 0;
  this.ingredients = [];
  this.addIngredients = function(items) {
    this.ingredients.push(items);
  };
}
myFavoriteRecipe.prototype.displayRecipe = function() {
  return this.ingredients;
}

let recipe = new myFavoriteRecipe({
  title: 'guacamole',
  serves: 8
});
recipe.addIngredients("3 Avocados");
recipe.addIngredients("1 Lime");
recipe.addIngredients("1 TSP salt");
recipe.addIngredients("1/2 Cup Onion");
recipe.addIngredients("3 Tablespoons of Cilantro");
recipe.addIngredients("2 Diced Tomatoes");
recipe.addIngredients("1 pinch Ground Pepper");

console.log(recipe.displayRecipe());

Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...