私は実際にどのようにこれが可能であるかを実際に説明することができない状況に遭遇しました。_DEFAULT定数変数が更新されるのはなぜですか?
デモ用にplunkerを作成しました。
CODE:
angular.module('test', []).controller('TestController', function($scope) {
/*
DEFAULT CONST VARIABLE
*/
const _DEFAULT = {
items: [],
name: 'Test',
selected: null
};
/*
TEST_CASE SCOPE VARIABLE
*/
$scope.test_case = _DEFAULT;
console.log('ON INIT DEFAULT: ', _DEFAULT);
/*
FUNCTION
*/
$scope.clicked =() => {
// SET TEST_CASE.SELECTED = 1
$scope.test_case.selected = 1;
// SHOW UPDATED TEST_CASE AND _DEFAULT VARIABLE
console.log($scope.test_case, _DEFAULT);
};
})。
ボタンがクリックされた(check demo)私たちははそれが_DEFAULT
は触れていないか、変更されたことがないときのconst変数_DEFAULT
が$scope.test_case
と同じデータを持っている可能性があるどのようにだけ$scope.test_case
内のデータを変更できますか?
これは不可能か、何か不足していますか?
'$ scope.test_case'は*が' _DEFAULT'と同じ*ですか? – Bergi
どのように同じですか?それが同じ場合、どのように更新されずに割り当てられる変数を作ることができますか? _DEFAULTと同じように、私は更新されません。私は$ scope.test_caseを更新したかった。どちらも代わりに更新されました。 – Vizjerei
「両方のオブジェクト」はありません。2回参照されるオブジェクトは1つだけです。独立した第2のものが必要な場合は、明示的に複製する必要があります。複製を参照してください。 – Bergi