2012-05-25 4 views
3

여러 자바 스크립트 방법은 표현

function tile(u,v, a,b,c,d) { 
    var c0 = tileCorners[a].eval(u,v); 
    var c1 = tileCorners[b].eval(u-1,v); 
    var c2 = tileCorners[c].eval(u,v-1); 
    var c3 = tileCorners[d].eval(u-1,v-1); 
    return c0 + c1 + c2 + c3; 
} 

function tile(u,v, a,b,c,d) { 
    return 
    tileCorners[a].eval(u,v) + 
    tileCorners[b].eval(u-1,v) + 
    tileCorners[c].eval(u,v-1) + 
    tileCorners[d].eval(u-1,v-1); 
} 

아직 두 번째 함수는 항상 반환 undefined (디버거에 동일해야 자바 스크립트 함수에서 호출되지 호출하지 않습니다 통화 "로 단계" ~ eval) 첫 번째 함수는 올바르게 작동합니다. eval 메서드 호출이 잘못된 식에 여러 가지가 있습니까?

답변

6

당신은 세미콜론 삽입 규칙의 희생자입니다.

시도 : 정확히

return; 

tileCorners[a].eval(u,v) + 
tileCorners[b].eval(u-1,v) + 
tileCorners[c].eval(u,v-1) + 
tileCorners[d].eval(u-1,v-1); 
+0

:

return tileCorners[a].eval(u,v) + tileCorners[b].eval(u-1,v) + tileCorners[c].eval(u,v-1) + tileCorners[d].eval(u-1,v-1); 

버전이 동일합니다. 감사. 와우, 그건 불행한 함정이다. – wcochran