본문 바로가기

전체 글

(149)
표준 내장 객체의 확장 표준 내장 객체(Standard Built-in Object)는 자바스크립트가 기본적으로 가지고 있는 객체들을 의미합니다.내장 객체가 중요한 이유는 프로그래밍을 하는데 기본적으로 필요한 도구들이기 때문입니다. 결국 프로그래밍이라는 것은 언어와 호스트 환경에 제공하는 기능들을 통해서 새로운 소프트웨어를 만들어내는 것이기 때문에 내장 객체에 대한 이해는 프로그래밍의 기본이라고 할 수 있습니다. 자바스크립트가 기본적으로 제공하는 내장객체입니다. Object Function Array String Boolean Number Math Date RegExp 자바스크립트가 제공하는 호스트환경은 이거보다 훨씬 많습니다. 이런반면에 사용자 정의 객체가 있습니다.(우리가 만든 객체) 자바스크립트 가지고있는 내장객체에 우리..
상속 기능의 추가 이번에도 예제가 있는데 별로 바뀐게 없습니다. function Person(name){ this.name = name; } Person.prototype.name=null; Person.prototype.introduce = function(){ return 'My name is '+this.name; } function Programmer(name){ this.name = name; } Programmer.prototype = new Person(); Programmer.prototype.coding = function(){ return "hello world"; } var p1 = new Programmer('egoing'); document.write(p1.introduce()+" "); docum..
상속 과정편 상속(inheritance)이란? 객체는 연관된 로직들로 이루어진 작은 프로그램이라고 할 수 있습니다.. 상속은 객체의 로직을 그대로 물려 받는 또 다른 객체를 만들 수 있는 기능을 의미합니다. 단순히 물려받는 것이라면 의미가 없을 것이다. 기존의 로직을 수정하고 변경해서 파생된 새로운 객체를 만들 수 있게 해줍니다. 예를 들어봅니다. function Person(name){ this.name = name; this.introduce = function(){ return 'My name is '+this.name; } } let p1 = new Person('egoing'); document.write(p1.introduce()+" "); 이코드를 아래와 같이 바꿔보겠습니다. function Person..
apoly, call 과 this let o = {} let p = {} function func(){ switch(this){ case o: document.write('o '); break; case p: document.write('p '); break; case window: document.write('window '); break; } } func(); func.apply(o); func.apply(p); func() 로서 호출하게 되면 이 this의 값은 window가 됩니다. 그럼 세번째가 실행됩니다. 그다음 break문이 실행되서 끝납니다. 두 번째 func.apply (o) 첫번째 인자로 this의 값은 o으로 되서 첫번째문 실행 입니다. func.apply (o)하면 o라는 객체의 메소드가되고 func.apply (p..
this 객체로서의 함수 함수가 객체라는 점을 다시한번 상기 시켜드리겟습니다. function sum(x,y) {return x+y;} sum(1,2); 3 이렇게 도 선언해보겠습니다. let sum2 = new fuction('x','y','return x+y;'); sum2(1,2) 3이 나옵니다. 'x','y'는 인자 두번째 'return x+y는 본문에 해당합니다. function sum(x,y) 이것은 함수 객체를 만든겁니다. let sum2 = new fuction('x','y','return x+y;');이것은 본문 부분이 길어 버리면 불편하기 때문에 function sum(x,y) {return x+y;}이 문법으로 써주면 간편하게 자바스크립트가 객체 함수로 바꾸어 줍니다. 이것을 함수 리터럴이라고 합니다. 그리고..
this this는 함수 내에서 함수 호출 맥락(contex) 어떠한 의미가 고정되어 있지않고 상황에 따라 다릅니다. this는 자바스크립트 함수 안에서 사용되는것입니다. function func() { if(window ===this){ console.log("window===this"); } } func(); window===this 이함수에서 this라는 변수에 담긴 값이 window라는 전역 객체라는 것을 보여주고 있습니다. 메소드를 호출했을 때 객체의 소속인 메소드의 this는 그 객체를 가르킨다. let o = { func : function(){ if(o === this){ document.write("o === this"); } } } o.func(); 결과는 0===this 우리는 여기서 어떤 사..
생성자와 new 객체지향 객체를 만드는 것을 다시 복습해봅니다. let person = {} -------- object person.name = 'egoing'; --------- name (프로퍼티) person.introduce = function(){ -------- 프로퍼티에 함수가 담겨 있습니다. 이것이 메소드입니다. return 'My name is '+this.name; 여기서 this는 person을 의미합니다. this.name은 egoing을 의미합니다. } document.write(person.introduce()); 이과정이 분산되어 있습니다. 코드를 바꿔봅니다. let person = { 'name' : 'egoing', 'introduce' : function(){ return 'My name is ..