In the following code I'm trying to create a human object from form data. The userData object returns undefined for all values but I am assigning values in the function that retrieves the data. If I console.log the userData object I see '{}' then when expanding I see the values but after creating the human object those same values show undefined. How can I assign those values to the human object so it keeps those values? Thank you.
function Human(name, height, weight, diet) {
this.name = name;
this.height = height;
this.weight = weight;
this.diet = diet;
}
const btn = document.getElementById('btn');
const userData = {};
function getUserData() {
let formContainer = document.getElementsByClassName('form-container')[0];
formContainer.style.display = 'none';
let main = document.getElementById('grid');
main.style.display = 'flex';
let name = document.getElementById('name').value;
let feet = parseFloat(document.getElementById('feet').value);
let inches = parseFloat(document.getElementById('inches').value);
let height = (feet * 12) + inches;
let weight = parseFloat(document.getElementById('weight').value);
let diet = document.getElementById('diet').value;
userData.name = name;
userData.height = height;
userData.weight = weight;
userData.diet = diet;
}
console.log(userData);
// Create Human Object
const human = new Human(userData.name, userData.height, userData.weight, userData.display);
console.log(human);
getUserDatafunction ever called in somewhere before you printuserData