リファレンス


参照タイプのコピー


整列

let numbers1 = [1,2,3]
let numbers2 = numbers1

numbers2.push(4)

console.log(numbers1) // [1,2,3,4]
console.log(numbers2) // [1,2,3,4]
場合によっては、間の参照型値をコピーするのではなく、コピーしたい場合があります(num 2を変更したいのは名前の通りです).
sliceメソッドでパラメータに何も指定されていない場合は、元の値が返す性質を利用して、配列をコピーするように見えます.
let numbers1 = [1,2,3]
let numbers2 = numbers1.slice()

numbers2.push(4)

console.log(numbers1) // [1,2,3]
console.log(numbers2) // [1,2,3,4] 

オブジェクト(アドレス値を変数に格納)

let course1 = {
   title : '파이썬 프로그래밍기초',
   language: 'python'
};

1.Object.割り当て方法の使用

let course2 = Object.assign( {}, course1);

course2.title = '알고리즘의 정석'

console.log(course1); // title: '파이썬 프로그래밍기초', language: 'python'
console.log(course2); // title:'알고리즘의 정석' , language: 'python'

2.for in文を使用する場合、同じpropertyを使用できますが、独立して使用できます。

let course1 = {
   title : '파이썬 프로그래밍기초',
   language: 'python'
};

let course2 = {};

for(let key in course1) {
  course2[key] = course1[key];
}

course2.title = '자료구조'

console.log(course1); // title:  '자료구조' , language: 'python'
console.log(course2); // title:'알고리즘의 정석' , language: 'python'

3.関数の使用

function cloneObject(object) {
  let temp = {};
  
  for(let key in course1) {
    temp[key] = object[key];
}

  return temp
};

let course1 = {
   title : '파이썬 프로그래밍기초',
   language: 'python'
};


let course2 = cloneObject(course1)


course2.title = '알고리즘의정석'
console.log(course2) // title:'알고리즘의 정석' , language: 'python'
定数へのプロパティの追加

const x = {name : 'ss'}
x.birth = 2017
console.log(x)//{name:'ss', birth:2017
値を割り当て演算子に変更すると、値の再割り当てのように見えますが、オブジェクトのPropertyまたは配列の要素が変更されると、
アドレス値が変更されないため、定数の値が変更される可能性があります.