2016-09-26 5 views
-1

그래서 저는 JS에 대해 배우기 시작했습니다. 어제 시작한 이래로 이것은 아마도 다소 기본적인 것입니다. 그래서 나는 지금까지 와서 실제로 결과가없는 2-3 시간 정도 지난 것을 알아 내려고 노력하고있다.Javascript - 잡히지 않는 타입 오류 : tri.Area는 함수가 아닙니다.

height * width/2에서 수학 값을 만들어야하고 area()로 다시 반환해야하는 고유 한 함수 (영역)를 만드는 높이와 너비의 값을 가져 오려고합니다. 그런 다음 console.log에서 값을 가져옵니다. 꽤 간단하지만 메신저가 마지막 console.log에서 오류를 얻는 이유는 알 수없는 몇 가지 이유 때문입니다.

function x(a, b) { 

    return { 
     a: a, b: b 
     } 
} 

function Area(a, b) { 
    this.a = a; 
    this.b = b; 
    this.y = this.a* this.b/2; 
    return y; 
} 




var Snorlax = x(12, 14); 
console.log(Snorlax.a); 
console.log(Snorlax.b); 
console.log(Snorlax.Area()); <---- Issue here 

무엇이 문제 일 수 있습니까?

편집 : 그것은 Snorlax.Area 그래서 기본적으로 난 그냥 싶어이 프로그램이 작동 할 수 있도록 그것을 해결하는 기능 아니다라고 어디 그래서 문제가 console.log(Snorlax.Area()); <---- Issue here에 문제를 점점 그 메신저입니다. console.log(Snorlax.Area());을 사용하면 Area 기능을 작동시키고 a * b/2의 결과를 제공하기로되어 있습니다. 그게 전부예요.

EDIT2 :

함수 X 우측 될 경우에는 (a, b) {

return { 
     a: a, b: b 
     } 
} 

function Area(a, b) { 
    return a * b/2; 
} 


var Snorlax = x(12, 14); 
console.log(Snorlax.a); 
console.log(Snorlax.b); 
console.log(Area(Snorlax.a, Snorlax b)); 

?

+3

트라이앵글()이란 무엇입니까? – Tushar

+0

@tushar 나는 그것이 어떻게 왔는지 알지 못한다. 그것은 X 하하이기로되어 있었다. 나는 다른 곳에서 붙여 넣은 것 같은데. 그러나 여전히 같은 문제입니다. – ThrillOfit

+0

@evolutionxbox 그 사본 붙여 넣기 문제가되었습니다. 그 문제는 그다지 중요하지 않습니다. 죄송합니다.하지만 여기에 붙여 넣을 때 뭔가가 일어났습니다. 바로 지금해야합니다 :) – ThrillOfit

답변

2

귀하가 Area() function
시도 a,b 전달하지 : console.log(Area(Snorlax.a,Snorlax.b));


당신이 지역을 호출했기 때문에 당신이 기능 이유는 정의되지 않은 Area function

에서

반환 this.y입니다 함수 (존재하지 않음)에있는 x 개체에 있습니다. 위와 같이 Area 함수를 호출해야합니다.

+0

return 문에 아직 정의되지 않은'y' 문제가 남아 있습니다. – evolutionxbox

+0

이 경우 어떻게 지역 함수에서 수학을 수행합니까? 나는 그 경우 그것을 건너 뛸 것이라고 생각합니까? – ThrillOfit

+0

@ThrillOfit - 영어를 다시 한 번 확인하십시오. 질문이 무엇인지 알기가 어렵습니다. – evolutionxbox

관련 문제