Javascript 함수 질문
글쓴이: doodoo / 작성시간: 금, 2007/07/13 - 5:28오후
드디어 프로그래밍QnA에도 질문을 올릴때도 있군요 ^^;
자바스크립트를 보고 있습니다. 근데 객체 생성에 관련하여 이해할수 없는 함수가 있군요
럭키뷰 이고 이부분만 프리로 풀려 있어요 직접기능을 보고 싶으시면 http://luckyteam.co.uk 가보셔도 되고요
제가 궁금한것은..
function luckyView_createMethodReference(object, methodName) { var args = arguments; return function () { object[methodName].apply(object, arguments, "sssss"); }; }; function luckyView(title, images, start, mapCont, baseuri) { this.sx = 0; this.sy = 0; this.z = start; this.baseuri = baseuri; this.images = images; this.scaleImagePlus = 0; this.scaleImageMinus = 0; this.map = 0; this.mapCont = _el(mapCont); this.mapImage = 0; this.help = 0; this.title = title; this.lvisim = luckyView_createMethodReference(this, "visim"); this.lunzoom = luckyView_createMethodReference(this, "unzoom"); this.lzoom = luckyView_createMethodReference(this, "zoom"); this.lmap_move = luckyView_createMethodReference(this, "map_move") };
여기 중에 function luckyView(title, images, start, mapCont, baseuri) { 이 부분은
객체 생성자 처럼 보입니다. 맞나요?
그리고 function luckyView_createMethodReference(object, methodName) { 이 부분은
중간에
return function () { object[methodName].apply(object, arguments, "sssss"); };
이렇게 리턴한다고 되어 있습니다. 보통은 리턴은 return function_1(); 처럼 하는것
아닌가요?
Forums:
JavaScript의 객체
JavaScript의 객체 모델은 조금 재미있게 되어 있습니다. 클래스가 없고, 대신 함수로 유사 생성자를 만들어서 사용합니다. 함수 호출 표현식 앞에
new
키워드를 붙이면,함수.prototype
이라는 원형 객체를 복제한 것을this
로 전달해줍니다.function(...) { ... }
구문은 함수 리터럴입니다. JavaScript에서는 함수가 참조 및 전달 가능한 객체이기 때문에 저런 것이 가능합니다. 저렇게 함수를 반환하는 함수를 고차 함수(higher-order function)라고 하는데 함수형 언어에서는 흔히 쓰는 코드이구요.값으로서의 함수라는 개념이 이상하게 느껴지신다면, C의 함수 포인터나 C++에서의 함수자(functor) 같은 것을 생각하시면 될 듯합니다.
그러면
그러면 luckyView_createMethodReference 함수는 실제로 object[methodName].apply 함수를
실행하는것으로만 이해하면 될까요?
luckyView_createMethodReferen
luckyView_createMethodReference 함수는 실제로 object[methodName].apply 함수를 실행하지 않습니다.
object[methodName].apply 함수를 실행하는 함수를 리턴할 뿐입니다.
object[methodName].apply 함수를 실행하고 싶으면
처럼 해야합니다. 함수 객체는 여러가지 용도가 있겠지만 callback을 위해서 사용하는 경우가 많습니다.
뭐 이런 식이지요.
아...조금
아...조금 햇갈리는군요
좀더 이것저것 좀더 알아봐야 하겠군요...ㅠㅠ
뜨아 이글 보니 더
뜨아 이글 보니 더 헷갈리네요...
http://www.ibm.com/developerworks/kr/library/j-cb12196/index.html?ca=drs-kr
이렇게 사용하시는 분들 있으세요?
그냥 기초 내용 부터
그냥 기초 내용 부터 다시 보시는 것이 좋을 것 같습니다.
이쪽에서 유명하신 Douglas Crockford의 강의 비디오가 있습니다.
http://video.yahoo.com/video/play?vid=cccd4aa02a3993ab06e56af731346f78.1710507
----------------------------------------
http://moim.at
http://mkhq.co.kr
----------------------------------------
http://moim.at
http://mkhq.co.kr
아...감사합니다... 시
아...감사합니다...
시작 부분만 잠깐 봤는데...영어네요..ㅠㅠ
열심히 해독은 잘 않되겠지만 ....봐야 하겠네요...
댓글 달기