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' : {}
  });


Как по правильному надо сделать?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 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 используется для удаления ключей из объекта, переменные им удалять нельзя
Память от временного объекта будет очищена по завершению данной функции
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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