Добавить в массив новой функции объекты из старой функции JS

170
27 июля 2018, 11:10

столкнулся с проблемой. Необходимо из функции Tools передать один из item'ов в массив Bag функции Equipment.

function Equipment() {
  const Bag = [];
  function addProduct() {
    for (var i=0; i < tools; i++) {
      Bag.push(tools.item1)
    }
  }
}
function tools() {
    this.item1 = {
      name: "item1",
      price: 5,
      count: 10
    };
    this.item2 = {
      name: "item2",
      price: 15,
      count: 20
    };
    this.item3 = {
      name: "item3",
      price: 20,
      count: 30
    };
    this.item4 = {
      name: "item4",
      price: 30,
      count: 40
    };
    this.item5 = {
      name: "item5",
      price: 40,
      count: 50
    };
}
const equipment = new Equipment();
const tools = new Tools(/* … */);
equipment.addTools(tools)
Answer 1

Если вы создаете объект tools с помощью функции конструктора:

const tools = new Tools(/* … */);

То функция у вас должна называться

function Tools() {
   ...

В итоге объект tools будет выглядеть так {item1: ..., item2: ..., item3: ..., item4: ..., item5: ...}

Так как айтемы вы записываете в свойства новосозданного объекта, то и обращаться к ним вы можете просто по имени.

function Equipment() {
  const Bag = [];
  this.addProduct = function (propertyName) {
    Bag.push(tools[propertyName]);
  }
}

Обратите внимания, что объекты и массивы передаются по ссылке, то есть если вы внутри Equipment потом будете изменять переданные объекты, то они изменятся и в изначальном объете tools.

Вот хороший учебник по JS: http://learn.javascript.ru/object

READ ALSO
Как найти совпадение в массиве и вернуть его ключ?

Как найти совпадение в массиве и вернуть его ключ?

В общем, дело тёмноеУ меня есть массив вида ключ: значение:

167
неправильная работа jQuery

неправильная работа jQuery

День добрый! Подскажите в чём может быть проблемаПоменял системный блок и начались проблемы

205
Сменить цвет кнопок js

Сменить цвет кнопок js

Есть массив с данными, там есть кнопки, мне нужно чтобы при нажатие на конкретную кнопку менялся цвет только этой кнопки

176
QUERY FOR NUMBERS IN MYSQL

QUERY FOR NUMBERS IN MYSQL

Здравствуйте у меня такой вопросесть одна таблица в котором есть число до 10 нужно писать query который нам дает все четные и нечетные числи

169