Задать вопрос
splincodewd
@splincodewd
Developer

Как из другого объекта передать ключи в старый объект?

Есть объект $scope
я ему раньше вешал новые свойства таким образом

$scope.method1 = {};
$scope.method2 = {};
//..
$scope.methodn = {};


Но постоянно писать $scope надоело, попытался так
(scope, methods)=>{
    for (let i in methods){
      scope.i = methods[i];
    }

    // объект не удаляется
    // сборщиком мусора
    // ибо на него есть ссылки
    delete methods; 

  }($scope, {
      'method1' : {},
      'method2  : {},
      //..
      'methodn' : {}
  });


Как по правильному надо сделать?
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
;((scope, methods) => {
    for (let key of Object.getOwnPropertyNames(methods)) {
      scope[key] = methods[key];
    }
})($scope, {
      'method1' : {},
      'method2'  : {},
      //..
      'methodn' : {}
});


Оператор delete используется для удаления ключей из объекта, переменные им удалять нельзя
Память от временного объекта будет очищена по завершению данной функции
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы