본문 바로가기

JAVASCRIPT

(80)
object 확장 어떠한 프로그래밍을 만들 때 원리를 먼저 생각하는 것보다는 어떻게 사용될건지를 어디에 사용될건지를 먼저 생각하는 것을 추천드립니다. Object.prototype.contain=function(needle){ for(let name in this) { if(this[name]=== needle){ return true; } } return false } let o = {'name':'egoing', 'city':'seoul'} console.log(o.contain('egoing')); let a = ['egoing','leezche','grapittie']; console.log(a.contain('leezche')) Object 모든 객체를 뜻하고 어떠한 메소드를 갖는다고 하면 어떠한 프로토타입이라는..
Object Object 객체는 객체의 가장 기본적인 형태를 가지고 있는 객체입니다.. 다시 말해서 아무것도 상속받지 않는 순수한 객체입니다. 자바스크립트에서는 값을 저장하는 기본적인 단위로 Object를 사용합니다. 예를 보자면 우리가 알고있는 let grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80}; 동시에 자바스크립트의 모든 객체는 Object 객체를 상속 받는데, 그런 이유로 모든 객체는 Object 객체의 프로퍼티를 가지고 있습니다. 모든 객체들이 사용할수 있는 프로 퍼티입니다. 작은 예를 들어보면 object.key라는 메소가 있습니다. 우리가 공부하는거에 중요한점은 object라는 객체는 어떤형태의 메소드가 있는지 그 메소드들은 형태에 따라 어떻게 사용하는 지 ..
표준 내장 객체의 확장 표준 내장 객체(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 우리는 여기서 어떤 사..