Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 CSS가 어려운 이유 — 프로젝트 중심 실전 CSS 강의 소개 2023-04-13
📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12
📌 [번역] CSS 코드 냄새 2013-01-01

javascript 함수의 개념

《프로그래밍 jQeury》의 부록A(appendix A)를 읽고 메모한 것이다.

자바스크립트는 함수를 변수 취급한다.

다음 세 코드는 동일한 내용이다.

function wow(){
  alert('wow!');
}

var wow=function() {
  alert('wow!');
}

window.wow = function() {
  alert('wow!');
}

다른 객체 지향 언어와 달리 자바 스크립트에서 함수는 어떤 객체의 메서드가 아니다

이렇게 표현하는 편이 정확하다고 한다.

함수 f를 호출할 때 함수 콘텍스트로 객체 o가 제공되면 f는 o의 메서드 역할을 한다.

이와 관련한 코드는 다음과 같다.

var o1 = {handle:'o1'};
var o2 = {handle:'o2'};
var o3 = {handle:'o3'};
window.handle = 'window';

function whoAmI() {
return this.handle;
}

o1.identifyMe = whoAmI;

alert(whoAmI());
alert(o1.identifyMe());
alert(whoAmI.call(o2));
alert(whoAmI.apply(o3));

《프로그래밍 jQuery》의 예제를 그대로 넣은 것이다.

call()apply()는 위에서 whoAmI라는 함수의 콘텍스트로 객체2(o2)와 객체3(o3)을 제공하는 역할을 한다. call()apply()는 바로 그런 역할을 하는 함수다.

위의 코드를 찬찬히 뜯어보면, 자바 등의 객체지향 언어의 메서드와 자바스크립트의 함수가 어떻게 다른지 알 수 있을 것이다.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다