참조
1990 단어 JavaScript참조TILJavaScript
참조형 복사하기
배열
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]
상황에 따라사 이 참조형값을 복사하지않고 그대로 복사하고싶을떄도있을 텐데(말그대로 num2만변경하고싶음) 그때 사용하는것이 slice
slice메서드에 parameter에 아무것도 지정하지않으면 원래의 값이 return되는 성질을 이용하면됨 이렇게 하면 배열을 복사하는것처럼보임
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.assign 매서드를 사용하기
let course2 = Object.assign( {}, course1);
course2.title = '알고리즘의 정석'
console.log(course1); // title: '파이썬 프로그래밍기초', language: 'python'
console.log(course2); // title:'알고리즘의 정석' , language: 'python'
2.for in 문 사용하기 이렇게 하면 똑같은 프로퍼티를 갖고있지만 독립적으로 사용할수있음
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
할당연산자로 값을변경하면 값을 재할당하는것처럼보이지만 객체의 프로퍼티나 배열의 요소가 변경되는경우는
주소값이 변하는것이아니기때문에 상수의 값이 변할수있음
Author And Source
이 문제에 관하여(참조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyle-shk/참조-pflu1sdr저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)