LoginSignup
0
1

More than 5 years have passed since last update.

Angularでプロトタイプ継承を回避するangular.copy

Last updated at Posted at 2016-12-26

Javascriptのプロトタイプ継承とは?

元になるオブジェクトを新しいオブジェクトに格納した場合、
新しいオブジェクト側で値の変更があった場合元になるオブジェクトも変更する挙動です。
この機能はAngularでScopeを多用するときにもかなり便利なのですが、ある条件のときはこれが邪魔になる場合があったりするので
そんな時の回避方法。

元のオブジェクト

$scope.options = {1:'いぬ', 2:'うさぎ', 3:'ねこ'};

新しいオブジェクトにoptionsを格納

$scope.value = $scope.options;

上記の格納方法だと、$scope.valueの値が変更された場合に$scope.optionsの値も変更されます。

$scope.valueの値が変更された場合に、$scope.optionsの値を変更したくない場合は、

Angular.copyを使う

$scope.value = angular.copy($scope.options);

angular.copyを使って元オブジェクトの値の変更を回避できます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1