JavaScript 23

복제, 참조

복제말 그대로 데이터를 그대로 복제하는 것이다. var a = 1; var b = a; b = 2; document.write(a); // 1* 결과는 1이다. 값을 변경한 것은 변수 b이기 때문에 변수 a의 값을 그대로이다. 변수 b에 변수 a의 값이 복제 된 것. 참조 var a = {'id':1}; var b = a; b.id = 2; document.write(a.id); // 2 *결과는 2이다. 이는 var a가 객체이기 때문이다. 객체를 다른 말로 참조 데이터 형이라고도 부른다. 기본 데이터형은 위와 같이 복제되지만 참조 데이터형은 참조 된다. 원본 파일을 참조한 것이기 원본 파일의 값이 변경 될 수 있다.

WEB/JavaScript 2016.10.13

원시 데이터 타입과 레퍼 객체

데이터 타입이란 데이터의 형태를 의미라고 이는 크게 두가지로 구분할 수 있다.객체인 것과 객체가 아닌 것.원시 데이터 타입은 객체가 아닌 데이터 타입을 의미한다.숫자문자열불리언nullundefined 레퍼 객체* 위 그림을 보면 문자열이 객체처럼 ( str.length) 동작하고 있다. * 내부적으로 문자열이 원시 데이터 타입이고 문자열과 관련된 어떤 작업을 하려고 할 때 JavaScript는 임시로 문자열 객체를 만들고 사용이 끝나면 제거하기 때문이다. * 이 처럼 임시 객체를 만들고 삭제하기도 하고, 필요한 기능성을 객체지향적으로 제공해야 하는 필요 또한 있기 때문에 원시데이터 형을 객체처럼 다룰 수 있도록 하기 위한 객체를 레퍼 객체라고 한다.StringNumberBoolean

WEB/JavaScript 2016.10.13

표준 내장 객체

표준 내장 객체(Standard Built -in Object)는 JavaScript가 기본적으로 가지고 있는 객체들을 의미한다. 1. 표준 내장 객체 종류ObjectFunctionArray : 연관되어 있는 복수의 값을 하나의 컨테이너로 관리 String : 문자열 객체Boolean : boolean value를 객체화 시킨 것Number : 수 객체Math : 수학을 위한 객체Data : 날짜와 시간에 관한 객체RegExp : 정규표현식을 사용하기 위한 객체를 생성한다. 2. Object 객체* 가장 기본적인 형태를 가지고 있는 객체이다. 다시 말해서 아무것도 상속받지 않는 순수한 객체이다. JavaScript는 값을 저장하는 기본적인 단위로 Object를 사용한다. 동시에 모든 객체는 Object ..

WEB/JavaScript 2016.10.13

prototype

prototype은 말 그대로 객체의 원령이라고 할 수 있다. 함수는 객체다. 그러므로 생성자로 사용될 함수도 객체이다. 객체는 프로퍼티를 가질 수 있는데prototype이라는 프로퍼티는 용도가 약속되어 있는 특수한 프로퍼티다. prototype에 저장된 속성들은 생성자를 통해 객체가 만들어질 때 그 객체에 연결된다. * JavaScript의 모든 객체는 부모인 prototype 객체를 가리키는 참조 링크 형태의 숨겨진 property가 있다. ECMAScript에서는 이 참조 링크를 프로토타입 링크(prototype link)라고 부른다. * cunstructor(생성자 함수)의 prototype 프로퍼티는 자신과 링크된 prototype 객체를 가리키고 있다. * new 객체 생성을 한 뒤의 인스턴스..

WEB/JavaScript 2016.10.13

상속

상속(inheritance)는 객체의 로직을 그대로 물려받는 또 다른 객체를 만들 수 있는 기능이다. 기존의 로직을 수정하고 변경해서 파생된 새로운 객체를 만들 수 있게 해준다. 1. 상속 방법 var Parent = function(name) { //부모 this.name = name; } Parent.prototype.name = null; //prototype 속성 Parent.prototype.introduce = function(){ //prototype 속성 return 'My name is '+name; } var Child = function(name) { //자식 this.name = name; }; //상속 Child.prototype = new Parent(); //사용 var p1 ..

WEB/JavaScript 2016.10.13

전역객체와 this

전역객체(Global Object)란 window 객체로 모든 객체가 소속된 객체이고, 창이나 프레임을 의미한다.* 위 그림처럼 alert 와 window.alert의 결과는 같다. 이는 alert가 window 객체의 메소드이기 때문이다. * 객체를 만든다는 것은 window 객체의 프로퍼티를 만드는 것과 같은 것 ! 즉, 전역변수와 함수가 사실은 window 객체의 프로퍼티와 메소드라는 것이다. * 이러한 특성을 ECMAScript에서는 Global 객체라고 부른다. 이 Global 객체는 호스트 환경에 따라서 이름이 다르고 하는 역할이 조금씩 다르다. 웹브라우저와 JavaScript에서 window객체는 전역객체이면서 동시에 웹브라우저의 창이나 프레임은 제어하는 역할을 하고 Node.js에서는 wi..

WEB/JavaScript 2016.10.13

생성자

객체란 서로 연관된 변수와 함수를 그룹핑한 그릇이라 할 수 있다. 객체 내의 변수를 프로퍼티(property)함수를 메소드(method)라고 부른다. * 우측 그림은 객체를 정의 할 때 값을 셋팅한 코드이다. 생성자(constructor) * 객체를 만드는 역할을 하는 함수이다. JavaScript에서 함수는 재사용 가능한 로직의 묶음이 아니라 객체를 만드는 창조자라고 할 수 있다. * 위 그림처럼 함수를 호출할 때 new를 붙이면 새로운 객체를 만든 후에 이를 리턴한다. 이 함수를 생성자라고 한다.* 여러사람을 위한 객체를 만들어야 할 때 위처럼 작성한다. 생성자 내에서 이 객체의 프로퍼티를 정의하고 있는데, 이를 '초기화'라고 한다. *일반적인 객체지향 언어에서 생성자는 클래스의 소속이다. 하지만 J..

WEB/JavaScript 2016.10.13

arguments

arguments* 객체이다.* 함수 안에서 인자와 관련된 정보를 담고 있는 객체로 사용방법이 배열과 아주 유사하다. * 함수 sum이 인자에 대한 정의가 없음에도 마지막 행 sum(1, 2, 3, 4)에서 4개의 인자를 전달하고 있다. 함수를 정의할 때 인자에 대한 구현이 없음에도 인자를 전달 할 수 있는 것은 arguments하는 특수한 배열이 있기 때문이다.* arguments는 함수안에서 사용할 수 있도록 이름이나 특성이 약속되어 있는 일종의 배열이다. arguments[0]으로 함수로 전달된 첫번째 인자를 알아낼 수 있고, arguments.length를 통해 함수로 전달된 인자의 개수를 알아낼 수도 있다.* 매개변수 arguments.length는 함수로 전달된 실제 인자의 수를 의미하고, 함..

WEB/JavaScript 2016.10.12
반응형