2014-03-14 2 views
2

나는 여기서 정말로 기본적인 것을 놓치고 있다고 확신한다. 그러나 나는 한 시간 정도 고생했다. 문제를 해결할 수 없다.오브젝트 내의 기본 기능 return

기본적으로, 나는 html의 체크 박스 값을 검사 할 객체 내에 메소드를 만들려고하는데, true이면 콘솔에 같은 객체 내에 세 개의 값을 표시합니다. (결국에는 내 양식의 innerHTML).

다음 코드는 단순히 firebug에서 "function()"을 내 콘솔에 씁니다. 분명히, 나는 firstName lastName
이메일을 쓰려고합니다. 내가 여기서 간단하게 누락 된 것은 무엇입니까? 미리 감사드립니다!

function process() { 
'use strict'; 

var firstName = document.getElementById("firstName").value; 
var lastName = document.getElementById("lastName").value; 
var email = document.getElementById("email").value; 
var permission = document.getElementById("permission").checked; 

var contactInfo = { 

    firstName: firstName, 
    lastName: lastName, 
    email: email, 
    permission: permission, 
    display: function() { 
     var contactCard; 
     if (this.permission == true) { 
      contactCard = firstName + " " + lastName + "<br />" + email 
     } else { 
      contactCard = "Permission Denied." 
     } 
     return contactCard; 
    } 
}; 
console.log(contactInfo.display); 
return false; 
}; 
function init() { 
'use strict'; 
document.getElementById('theForm').onsubmit = process; 
}; 

window.onload = init; 

답변

1
console.log(contactInfo.display()); 

당신은 함수를 호출 할 필요가있다.

console.log(contactInfo.display); display가 함수이고 실행되지 않습니다 (콘솔에서 실제로 contactInfo.display.toString()의 결과를 인쇄합니다). 그 이유는 반환 값 'contactCard'가 아닌 'function'을 보는 이유입니다.

+0

나는 그것이 바보 같이 된 것을 알았습니다. 많이 감사합니다. 또한이 장소를 좋아하십시오. 대답은 3 분 미만입니다. – AltDelete

관련 문제