커피스크립트 코딩 환경을 꾸미고 이것 저것 해보는 중 아쉬운 점이 발견되었다.
>> 이 문제는 커피가 함수 선언과 함수 표현에 따른 몰이해에 대한 문제로 깨닳음
(예제는 AJ 님의 블로그 코드입니다.)
자바스크립트 특성인 호이스팅 과정 때문에 발생하는 문제 같기도 하고 아무튼 아래의 코드를 보면서 테스트해본 결과 함수의 순서에 따라 작동이 다르다.
다른 함수에 있는 로컬 변수를 사용하기 위해 클로저를 사용했다.
결과는 아래와 같다.
그런데 구문의 순서를 조금 변경하여 아래와 같이 코딩하게 되면 실행되지 않는다.
타입 에러가 발생한다.
일단 졸려서 삽은 던져두고...
요약 : 커피스크립트 공부하기보다 자바스크립트 먼저 익숙해지도록 하자.
원래 자바스크립트 코드는 아래와 같음
>> 이 문제는 커피가 함수 선언과 함수 표현에 따른 몰이해에 대한 문제로 깨닳음
(예제는 AJ 님의 블로그 코드입니다.)
자바스크립트 특성인 호이스팅 과정 때문에 발생하는 문제 같기도 하고 아무튼 아래의 코드를 보면서 테스트해본 결과 함수의 순서에 따라 작동이 다르다.
A = ->
count = 100
console.log "count A : " + count
A1 = (B1) -> B1(count)
B = ->
A2 = A()
B2 = (count1) -> console.log "count B : " + count1
A2(B2)
B()
다른 함수에 있는 로컬 변수를 사용하기 위해 클로저를 사용했다.
결과는 아래와 같다.
count A : 100
count B : 100
그런데 구문의 순서를 조금 변경하여 아래와 같이 코딩하게 되면 실행되지 않는다.
A = ->
count = 100
console.log "count A : " + count
A1 = (B1) -> B1(count)
B = ->
A2 = A()
A2(B2)
B2 = (count1) -> console.log "count B : " + count1
B()
타입 에러가 발생한다.
TypeError: undefined is not a function
일단 졸려서 삽은 던져두고...
요약 : 커피스크립트 공부하기보다 자바스크립트 먼저 익숙해지도록 하자.
원래 자바스크립트 코드는 아래와 같음
function A() {
var count = 2011;
console.log("Local count = " + count)
return function (callback) {
return callback(count);
}
}
function B() {
var A2 = A();
A2(function (c1) {
console.log("A()'s count = " + c1);
});
}
B();
'Development > Coding' 카테고리의 다른 글
PHPFog with SlimPHP 테스팅 (0) | 2012.02.21 |
---|---|
PHP 에서 include 와 require 의 차이 (0) | 2011.12.27 |
micro PHP framework 삽질기 (0) | 2011.12.06 |
CSS 애니메이션 작업 후기 (0) | 2011.11.30 |
유능한 C# 개발자가 착각하는 나쁜 자바스크립트 습관. Part 3 (2) | 2011.06.30 |