2014-12-17 3 views
1

저는 JS에 처음 왔습니다. 제 첫 번째 논리적 프로그래밍 언어입니다. 어떤 이유로 든 내 소득 및 대출 금액이 다른 경우에도 console.log가 반환됩니다. '승인 됨'메시지를 표시 할 수없는 것은 무엇입니까?Console.log가 잘못된 대답을 반환합니다.

function LoanApp(personName, income, loanAmount){ 
    this.personName = personName; 
    this.income = income; 
    this.loanAmount = loanAmount; 

    var bankBranch = "New York"; 
    var approvalStatus = "invalid"; 

    this.submit = function (income, loanAmount){ 
     if (income/loanAmount >= 2) { 
      approvalStatus = "Approved"; 
      console.log("Congrats you're approved for " + this.loanAmount + ".") 
     } else { 
      approvalStatus = "On Review"; 
      console.log("Your application needs further review.") 
     }; 
    }; 
}; 

var tony = new LoanApp("Tony"5000,1000); 
tony.submit(); //returns else console.log but should be "Congrats" 
+5

통화가'var에 새로운 = 토니 LoanApp ("토니", 5000,1000) 안,'? 당신은 ','를 놓치기 전에 5000 –

+0

잡을 고마워. –

답변

3

귀하의 submit 기능은 function (income, loanAmount)으로 정의된다. 함수에 아무 것도 전달하지 않으므로 둘 다 undefined로 설정되고 undefined/undefined >= 2false으로 평가됩니다.

당신이이 문제를 해결하기 위해해야 ​​할 일은 다음과 같습니다

  1. 함수 선언에서 매개 변수를 제거합니다. 이 범위에서 그들을 찾기 위해 무엇을 알 수 있도록

  2. 함수에서 (loanAmount와 같은) this.income으로 income의 모든 항목을 바꿉니다.

+0

감사합니다. 왜 내가 필요한지 알 겠어. –

0

을 당신이해야 할 모든 키워드이 추가입니다 if then 문에서 변수의 값이> = 2인지 여부를 결정하는 변수에 전달합니다. 이렇게하면 함수에 변수에 대한 액세스 권한이 부여되고, 그렇지 않으면 변수가 함수의 범위를 벗어 났기 때문에 액세스 할 수 없습니다.

자바 스크립트 : jsfiddle 예 - http://jsfiddle.net/larryjoelane/zrkdyq9c/6/

function LoanApp(personName, income, loanAmount){ 
    this.personName = personName; 
    this.income = income; 
    this.loanAmount = loanAmount; 

    var bankBranch = "New York"; 
    var approvalStatus = "invalid"; 

    this.submit = function (income, loanAmount){ 
     if ((this.income/this.loanAmount) >= 2) { //<-----change that fixes code 



      approvalStatus = "Approved"; 
      console.log("Congrats you're approved for " + this.loanAmount + ".") 
     } else { 


      approvalStatus = "On Review"; 
      console.log("Your application needs further review.") 
     }; 
    }; 
}; 

var tony = new LoanApp("Tony",5000,1000); 
tony.submit(); //returns else console.log but should be "Congrats" 
관련 문제