javascript(14)
-
this
자바스크립트의 this는 함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정 된다. 1. 함수 호출 전역 객체는 모든 객체의 유일한 최상위 갹체를 말한다. Browser => window Server => global 기본적으로 this는 전역객체에 바인딩 된다. 그리고 내부함수는 일반함수, 메소드, 콜백함수 어디에서 선언되었든 this는 전역객체를 바인딩 한다. // 1.내부 함수 function outer(){ function inner(){ console.log("bind: ", this) // window } } // 2.메서드의 내부함수 var obj = { method: function(){ function inner(){ console.log("bin..
2019.11.23 -
closure
closure란? 간단히 말하자면 함수 내에 함수를 정의하고 사용하면 클로저라고 한다. MDN 에서는 다음과 같이 정의한다. 클로저는 독립적인 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 '기억한다'. function outerFunc() { var x = 10; var innerFunc = function () { return x; }; } var inner = outerFunc(); console.log(inner()); // 10 outerFunc()은 innerFunc을 반환하고 innerFunc 은 outerFunc 내부의 변수를 참조하고 있다. outerFunc이 실행이 되면서 함수가 풀어지게 되지만 innerFunc은 여전히 outerFunc 내부의 변수를 참..
2019.11.19 -
Prototype
자바스크립트의 모든 객체는 자신의 부모 역활을 하는 객체와 연결되어 있다. 그리고 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용하는 것이 가능하다. 이러한 부모 객체를 Prototype 객체 또는 Prototype 이라고 한다. var foo = { name : "foo", age : 30 }; console.log(foo.toString()); // "[object object]" foo에는 toString() 메서드가 없으므로 에러가 발생해야 하지만 제대로 출력되고 있다. 그 이유는 foo 객체의 프로토타입에 toString()메서드가 이미 정의되어 있기 때문이다. foo객체를 출력하여 확인 해보면 toString()메서드가 정의되어 있는 것을 확인할 수 있다. ECMAScript 명세서에는 자바..
2019.11.19 -
비동기 처리 방법
비동기 란 ? 요청과 결과가 동시에 일어나지 않는것을 말한다. 즉 동기와 달리 어떤 객체 또는 함수 내부에서 다른 함수를 호출했을 때 이 함수의 결과를 호출한 쪽에서 처리하지 않으면 비동기이다. 비동기 처리 란 ? 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행 시키는 특성을 말한다. 즉 비동기적으로 일어나는 일들을 동기적으로 작동시키는 일이다. 동기식 처리 function func1() { console.log('실행1'); } function func2() { console.log('실행2'); func3(); } function func3() { console.log('실행3'); } func1(); func2(); 비동기식 처리 function func1() { ..
2019.10.23 -
HTTP, Ajax
HTTP http 는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다. 클라이언트인 웹브라우저가 http를 통히여 서버로부터 웹페이지나 그림 정보를 요청하면 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 위의 그림처럼 클라이언트가 서버에 요청하면 서버는 응답을 주는 응답을 해준다. 한번에 요청에는 한번의 응답을 하고 응답을 하는 순간 연결은 종료 된다. 요청을 하면 응답을 줘야하는데. 응답을 주지 않으면 오류가 난다. (Keep-alive 설정을 하면, 지정된 시간동안 연결을 끊지 않고 요청할수 있다.) Http의 특징 비연결 지향 : 요청 하고 응답이 오면 연결을 끊는다. 무상태 : 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않는다. ..
2019.08.02 -
Prototype, __proto__, constructor 의 관계
Prototype은 PrototypeLink와 PrototypeObject를 통틀어 부르는 말이다. Prototype Object 객체는 언제나 함수로 생성된다. function Car() {} // => 함수 생성 var carObject = new Car(); // => 함수로 객체를 생성 carObject 객체는 Car함수로 생성된 것이다. 이처럼 Object와 마찬가지로 Array,Function 모두 함수로 정의되어 있다. 함수가 정의 될때는 해당 함수에 생성자 (constructor) 자격을 부여 하거나 해당 함수의 Prototype Object 생성 및 연결 하는 일 2가지가 동시에 일어 납니다. 1.함수에 생성자 (constructor) 자격을 부여 Constructor 자격이 부여되면 n..
2019.07.29