본문 바로가기

Language/JavaScript33

[JavaScript] 생성자와 new 생성자 객체를 생성하는 함수를 생성자 함수라고 부릅니다. 다른 언어에서는 class가 있지만 자바스크립트에서는 없다 var prototype = { type: '카드' }; function Card(name, att, hp){ //생성자는 함수이다 대문자로 놓고 this.name = name; this.att = att; this.hp = hp; } Card.prototype = prototype; 생성자는 함수이다. 생성자를 만들 때는 대문자로 시작하는것이 규칙이다. 생성자를 바탕으로 실제 카드 객체를 만들 수 있다. new 이 때 new라는 키워드를 사용해서 만들게 되는데 new 생성자(인자) 형태로 만들면 된다. 위에 코드에서 this란 생성자 함수 자신을 가르킨다. this에 저장된 것은 new .. 2020. 9. 11.
[JavaScript] 프로토타입 프로토타입 var 프로토타입 = { // 공통되는 부분 type: '카드', attack: function() {}, defend: function() {}, }; function 카드공장(name, att, hp){ var 카드 = { // 달라지는 부분 name: name, att: att, hp: hp, } 카드.__proto__ = 프로토타입 // 객체이기 때문에 참조관계, 같은 부분은 같게가고 return 카드; } 만약 프로토타입을 이용하지 않고 카드의 type을 '카드'에서 '장난감'으로 바꿔야한다면 카드의 type을 '카드'에서 3만개 바꿔야한다고 가정하면 일일이 객체를 바꿔야한다. 하지만 공통된 부분을 프로토타입을 이용해서 중복을 최소화 할 수 있다. 프로토타입은 객체이기 때문에 참조 관.. 2020. 9. 10.
[JavaScript] 객체를 복사하는 방법 객체 = 객체 형식은 객체가 참조관계를 갖기 때문에, 어느 한 객체를 변경하면 같이 바뀌면 같이 바뀌게 된다. 그렇다면, 객체를 복사하는 방법은 아래 코드와 같다. 객체의 참조를 확인하는 방법 객체의 참조관계를 쉽게 확인하기 위해서는 '===' 비교 연산자를 통해 확인할 수 있다. 객체 === 객체의 결과가 true라면 참조관계이다. 객체를 복사하는 방법 var obj = { a:1, b:2, c:3 } Object.keys(obj); var obj2 = {}; Object.keys(obj).forEach(function(key){ obj2[key] = obj[key] }) 먼저 객체를 생성하고, Object.keys(obj); 를 통해 객체의 key들을 뽑아내서 배열을 만든후에, forEach 반복문을.. 2020. 9. 8.
[JavaScript] 참조와 복사 복사 자바스크립트에서는 원시 데이터형을 제외한 모든 데이터 타입은 객체이다. 객체를 다른 말로는 참조 데이터 형(참조 자료형)이라고도 부른다. 자바스크립트는 원시값(숫자, 문자, boolean)에선 값이 복사가 되고, 객체일 때는 다르게 동작한다. 위 사진처럼 값을 복사하고 싶으면 변수를 지정하여 바꿔준다. 위 사진에는 값을 false로, 복사 = 값을 통해 value를 복사해준 후, 복사의 false값을 true로 바꿨다. 그 결과 복사는 true라는 value를 갖고, 값은 false라는 value를 갖는 형태를 볼 수 있다. 이 것을 통해 알 수 있는 것은 원시값을 복사하면 변수에 따로따로 동작하는 것을 알 수 있다. 참조 하지만, 객체일 때는 다르게 동작한다. 여기서 객체란 객체, 배열, 함수를 .. 2020. 9. 7.